Here is how I pass the values/variable to the partial:
<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"),
:text_2 => t(:"main.home.banner_text_2") } %>
then in the partial:
<%= text_1 %> <%= text_2 %>
but getting "undefined local variable or method text_1"
Where should I set the variable so it could be accesible from all views and layouts in my app?
Thanks!
If you have something that has to be displayed across all your views you can also create a application_helper method, Example: banner('Text', 'Content')
Try this:
Main page:
<%= render :partial => 'layouts/test',
:locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')}
%>
Partial:
<%= text_1 %> <%= text_2 %>
Andrew K
I believe that Rails 3 has changed how you pass partial variables, to something like this:
<%= render :partial => 'layouts/test',
:text_1 => t(:'text_1'), :text_2 => t(:'text_2') %>
Rails will parse that and since :text_1 is not a known key (like :collection or :as), it passes it to the partial itself.
You can access it via text_1 or text_2
来源:https://stackoverflow.com/questions/3222598/passing-values-to-partial-in-rails-3