首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将jBuilder输出赋值给变量

将jBuilder输出赋值给变量
EN

Stack Overflow用户
提问于 2022-02-03 20:02:13
回答 1查看 245关注 0票数 1

我有一个使用jbuilder的Rails应用程序。我使用jbuilder来帮助呈现json响应。是否有一种方法将jbuilder部分赋值给变量而不呈现结果?我一直在尝试下面这样的操作,但是我得到了这个undefined method 'key' for nil:NilClass错误。似乎我没有正确地将用户模型传递给user.json.jbuilder,有人能提供帮助吗?

代码语言:javascript
复制
context = ActionController::Base.new.view_context
user_json = JbuilderTemplate.new(context) do |json|
 json.partial! "/users_api/user.json.jbuilder", user: user
end.target!
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)

代码语言:javascript
复制
    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)

代码语言:javascript
复制
    render "/users_api/user.json.jbuilder"

user.json.jbuilder

代码语言:javascript
复制
    json.partial! "/users_api/user.json.jbuilder", user: @user

_user.json.jbuilder

代码语言:javascript
复制
    json.email user.email
    json.name user.name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70977565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档