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?

1 ответ

Решение

Я пытался исправить это в течение нескольких часов и, наконец, обнаружил, что синтаксис (указанный в readme для 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
Другие вопросы по тегам