Jbuilder 部分路径

Jbuilder Partial With Path

我正在尝试使用以下方法呈现部分 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