试图在解析器中获取current_user

时间:2018-08-23 13:48:04

标签: ruby-on-rails ruby-on-rails-5 graphql graphql-ruby

我有一个使用和项目模型。用户有很多项目。我正在尝试了解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。但是它也不应该也这样工作吗?

0 个答案:

没有答案