Передача значений частичным в рельсы 3
Вот как передаю значения/переменную частичным:
<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"),
:text_2 => t(:"main.home.banner_text_2") } %>
то в частичном:
<%= text_1 %> <%= text_2 %>
но получая "undefined локальную переменную или метод text_1"
Где я должен установить переменную, чтобы она могла быть доступна из всех представлений и макетов в моем приложении?
Спасибо!
Ответы
Ответ 1
Если у вас есть что-то, что должно отображаться во всех ваших представлениях, вы также можете создать метод application_helper, пример: banner('Text', 'Content')
Попробуйте следующее:
Главная страница:
<%= render :partial => 'layouts/test',
:locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')}
%>
Partial:
<%= text_1 %> <%= text_2 %>
Ответ 2
Я считаю, что Rails 3 изменил то, как вы передаете частичные переменные, примерно так:
<%= render :partial => 'layouts/test',
:text_1 => t(:'text_1'), :text_2 => t(:'text_2') %>
Rails проанализирует это, и поскольку: text_1 не является известным ключом (например: collection или: as), он передает его самому части.
Доступ к ней можно получить с помощью text_1 или text_2