ruby-on-rails - Jbuilder 部分路径

标签 ruby-on-rails ruby partials jbuilder

我正在尝试使用下面的方法呈现部分 jbuilder 文件

json.(@request, :id)

json.profile do
    json.partial! partial: 'users/user_reduced', user: @request.user
end

部分在下面(users/_user_reduced.json.jbuilder)

json.(user, :id, :name, :sex)

但是,我得到了错误:

ActionView::Template::Error (undefined local variable or method `user' for #<#<Class:0x007fe4ebc91878>:0x007fe4ebe599f8>):

好像没有设置本地用户变量。将局部变量设置为 jbuilder 部分路径的语法是什么?

最佳答案

我已经尝试修复此问题数小时,最后发现上面的语法(认为列在 jbuilder 自述文件中)不起作用。您必须像下面这样格式化您的部分:

json.partial! 'partials/partial_path', locals: {local_var: my_local_var}

所以在我的例子中,它将是:

json.(@request, :id)

json.profile do
    json.partial! partial: 'users/user_reduced', locals: {user: @request.user}
end

关于ruby-on-rails - Jbuilder 部分路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29661073/

相关文章:

ruby-on-rails - Mongoid embeds_many 验证错误消息是 plural_objects + "is invalid"

ruby-on-rails - Time.zone.at 比 Time.at 慢 10 倍

ruby - 如何通过 Ruby 的 pg gem(Rails 之外)连接到 Postgres 数据库

ruby - 导轨 4 : why is one way of rendering partials so much faster?

ruby-on-rails - Rails 4 动态子域

mysql gem 与 mysql2 gem 和 'each_hash' 方法

ruby - RSpec - 如何嵌套在 :all and before :each blocks interact? 之前

ruby - 如何使用 Ruby 将键盘和鼠标命令发送到底层操作系统?

javascript - 使用 Handlebars 创建局部