Подтвердить что ты не робот

Передача значений частичным в рельсы 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"

Где я должен установить переменную, чтобы она могла быть доступна из всех представлений и макетов в моем приложении?

Спасибо!

4b9b3361

Ответ 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