1

我有一个使用和项目模型。用户有很多项目。我正在尝试了解 Graphql。

我正在使用敲门宝石进行身份验证。我正在从 graphql 控制器的上下文中传递 current_user 。

这是代码

module Resolvers
  class Projects < GraphQL::Function
    type !types[Types::ProjectType]

    argument :with_title, types.String
    argument :with_description, types.String

    # def render_results(title: nil, description: nil, user: nil)
    #   return user.projects.find_with_title(title) if title
    #   return user.projects.find_with_description(description) if description
    #   return user.projects.all if title.nil? && description.nil?
    #   return user.projects.all
    # end

    def call(_obj, args, ctx)
      title = args['with_title']
      description = args['with_description']
      binding.pry
      # render_results(title: title, description: description, user: ctx[:curent_user])
      ctx[:current_user].projects
    end
  end
end

ctx[:current_user]总是出现nil

NoMethodError (undefined method `projects' for nil:NilClass):

但是当我使用 pry 调试时,它确实有当前用户,我可以毫无问题地调用 ctx[:current_user].projects 。我在这里想念什么?

需要注意的几点。我没有定义 UserType。我只有 ProjectType。但它不应该像这样工作吗?

4

0 回答 0