Вот как я передаю значения / переменную в партиал:
<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"),
:text_2 => t(:"main.home.banner_text_2") } %>
Затем в частичном:
<%= text_1 %> <%= text_2 %>
Но получение "неопределенной локальной переменной или метода text_1"
Где мне установить переменную, чтобы она была доступна из всех представлений и макетов в моем приложении?
Благодарность!
2 ответа
Если у вас есть что-то, что должно отображаться во всех ваших представлениях, вы также можете создать метод application_helper, например: banner('Text', 'Content')
Попробуй это:
Главная страница:
<%= render :partial => 'layouts/test',
:locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')}
%>
Частичное :
<%= text_1 %> <%= text_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
Похожие вопросы
Связанные вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.