我有一个使用jbuilder的Rails应用程序。我使用jbuilder来帮助呈现json响应。是否有一种方法将jbuilder部分赋值给变量而不呈现结果?我一直在尝试下面这样的操作,但是我得到了这个undefined method 'key' for nil:NilClass错误。似乎我没有正确地将用户模型传递给user.json.jbuilder,有人能提供帮助吗?
context = ActionController::Base.new.view_context
user_json = JbuilderTemplate.new(context) do |json|
json.partial! "/users_api/user.json.jbuilder", user: user
end.target!发布于 2022-02-04 00:32:53
您可以使用JbuilderTemplate和.target!直接从Jbuilder返回JSON,但是文件名需要以下划线开头。以和下划线开始文件名时,将其表示为分部,这意味着不能直接呈现文件名。
参考文献(How to render Jbuidler partials inside a model?,Missing partial in rails)
直接返回JSON (调用_user.json.jbuilder)
context = ActionController::Base.new.view_context
user_json = JbuilderTemplate.new(context) do |json|
json.partial! "/users_api/user.json.jbuilder", user: user
end.target!呈现JSON (调用user.json.jbuilder,调用_user.json.jbuilder)
render "/users_api/user.json.jbuilder"user.json.jbuilder
json.partial! "/users_api/user.json.jbuilder", user: @user_user.json.jbuilder
json.email user.email
json.name user.namehttps://stackoverflow.com/questions/70977565
复制相似问题