Частичные локальные элементы Rails не сохраняются при отправке в другой частичный файл как собственный локальный

StackOverflow https://stackoverflow.com/questions/1240321

Вопрос

Я визуализирую частичный вариант так:

<%= render :partial => 'widgets/some_partial, :locals => {:foo => 'bar'} %>

Итак, внутри _some_partial.html.erb Я визуализирую еще два партиала следующим образом:

<% #foo.nil? #=> false %>
<%= render :partial => 'widgets/another_partial', :locals => {:foo => foo} %>
`<%= render :partial => 'widgets/another_partial_again', :locals => {:foo => foo} %>`

Локальная переменная foo отлично отображается в some_partial.html.erb и даже в another_partial_again.html.erb.Однако переменная foo недоступна в another_partial.html.erb хотя я явно передал его при вызове рендеринга.

Что здесь происходит?

Спасибо за помощь.

Это было полезно?

Решение 2

Решено.Оказывается, я также визуализировал тот же фрагмент из контроллера, не отправляя нужные локальные переменные.В любом случае спасибо!!!

Другие советы

у меня был undefined local variable or method У меня тоже возникла ошибка, когда я рендерил частичный файл с помощью :locals определенный.

Однако у меня была другая проблема, вызывающая мою проблему, поэтому я решил поделиться своим решением, если оно поможет кому-то еще.(Эта страница была первым результатом, когда я все-таки погуглил эту ошибку)

В основном просто убедитесь, что вы используете :partial => 'path/to/partial' в вашем звонке render.

Т.е.

<%= render :partial => 'widgets/some_partial', :locals => {:foo => 'bar'} %>

НЕ так, как я делал:

<%= render 'widgets/some_partial', :locals => {:foo => 'bar'} %>

Новичку в Rails/Ruby, вроде меня, легко промахнуться.

Наткнулся на этот очень старый вопрос, потому что столкнулся с той же проблемой.Оказалось, что в Rails 4+, если вы не используете коллекции или макет, правильный путь:

# Instead of <%= render partial: "account", locals: { account: @buyer } %>
<%= render "account", account: @buyer %>

Как документировано здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top