Pet*_*ela 2 ruby ruby-on-rails graphql
我正在尝试从graphql-ruby中的resolve方法访问url helpers 以生成类似的字段.我知道我可以这样做:url
EventType = GraphQL::ObjectType.define do
field :url, !types.String do
resolve ->(event, _args, _ctx) do
Rails.application.routes.url_helpers.event_path event
end
end
end
Run Code Online (Sandbox Code Playgroud)
我知道include Rails.application.routes.url_helpers在你的模型中可以避免为每个调用添加前缀但是如何使用graphql-ruby执行此操作?
另外,如果我打电话event_url,它没有主机和端口.显然,我想避免添加host: request.host到每个帮助程序调用.
我通过创建config/initializers/graphql.rb注入url_helpers解析器的上下文来解决它:
module GraphQL
module Define
class DefinedObjectProxy
include Rails.application.routes.url_helpers
end
end
end
Run Code Online (Sandbox Code Playgroud)
至于主机和端口,它看起来像
# Allow to build url from models or graphql without needing to pass host/port every time
Rails.application.routes.default_url_options = Rails.application.config.action_mailer.default_url_options
Run Code Online (Sandbox Code Playgroud)
诀窍.我已经将它插入一个单独的初始化程序,虽然我怀疑它也config/routes.rb可以添加它.
| 归档时间: |
|
| 查看次数: |
632 次 |
| 最近记录: |