Ruby on rails 理解GraphQL-RubyonRails中的“上下文”
我正在阅读GraphQL变异部分,我不明白这部分中的上下文是什么,以及上下文[:current_user]返回什么 这是示例代码: 类别突变::启动子员工<突变::碱基突变 def就绪?**args 用变异参数调用。 使用关键字参数,如employee_id:或**参数来收集它们 如果上下文[:当前用户].admin? raise GraphQL::ExecutionError,只有管理员才能运行此操作 其他的 返回true以继续突变: 符合事实的 终止 终止 ... 终止Ruby on rails 理解GraphQL-RubyonRails中的“上下文”,ruby-on-rails,ruby,graphql,Ruby On Rails,Ruby,Graphql,我正在阅读GraphQL变异部分,我不明白这部分中的上下文是什么,以及上下文[:current_user]返回什么 这是示例代码: 类别突变::启动子员工
这是向导链接:您可以将特定于应用程序的值作为上下文提供给GraphQL:。这在许多地方都可用: 解析函数 Schemaresolve_型挂钩 ID生成和获取 上下文的常见用途:包括当前用户或身份验证令牌。要提供context:value,请将哈希传递给Schemaexecute:
# graphql_controller.rb
context = {
current_user: session[:current_user],
current_organization: session[:current_organization],
}
MySchema.execute(query_string, context: context)
然后,您可以在执行期间访问这些值:
field :post, Post, null: true do
argument :id, ID, required: true
end
def post(id:)
context[:current_user] # => #<User id=123 ... >
# ...
end
请注意,上下文不是您传递它的哈希。它是{{GraphQL::Query::Context | api_doc}的一个实例,但它将[]、[]=、和其他一些方法委托给您提供的哈希。我只想知道在这种情况下,上下文是什么样子的?