hagrere
@hagrere (hagurere)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Rails × GraphQLでuninitialized constant Types::QueryType::Userが出る

Q&A

Closed

Userテーブルの一覧を返すクエリを作りたい

バージョン

ruby: 3.0.2
rails: 7.0.4
graphql: 2.0.16

発生している問題・エラー

uninitialized constant Types::QueryType::User

該当するソースコード

graphql/types/user_type.rb

module Types
  class UserType < BaseObject
      graphql_name 'User'
      field :id, ID, null: false
      field :name, String, null: false
      field :email, String, null: false
      field :created_at, GraphQL::Types::ISO8601DateTime, null: false
      field :updated_at, GraphQL::Types::ISO8601DateTime, null: false
  end
end

graphql/types/query_type.rb

module Types
  class QueryType < Types::BaseObject
    # Add `node(id: ID!) and `nodes(ids: [ID!]!)`
    include GraphQL::Types::Relay::HasNodeField
    include GraphQL::Types::Relay::HasNodesField

    # Add root-level fields here.
    # They will be entry points for queries on your schema.

    # TODO: remove me
    field :test_field, String, null: false,
      description: "An example field added by the generator"
    def test_field
      "Hello World!"
    end

    field :users, [Types::UserType], null: true 
    def users(**args)
      User.all
    end
  end
end

自分で試したこと

User.allをコメントアウトして固定値を返すとエラーが出ないのでUserが呼び出せないみたいです。

0

2Answer

Comments

  1. @hagrere

    Questioner

    コメントありがとうございます。
    試してみたところエラーが"uninitialized constant User"に変わりました。
  2. クラスがautoload出来てないんですかね
    直接 User クラスのファイルを require するといかがでしょう
  3. @hagrere

    Questioner

    コメントありがとうございます。
    Userクラスのファイルというのがどれのことかわからないです。
    UserTypeクラスとは別物ですよね?
  4. 今Userクラスは無いんでしょうか?Railsの標準的なモデルクラスです
    無いなら作らないとですね
  5. @hagrere

    Questioner

    なるほど、モデルの作成が必要なんですね。
    確かに当たり前と言えば当たり前ですね。
    ありがとうございます試してみます

Your answer might help someone💌