passing values to partial in rails 3

bogumbiker picture bogumbiker · Jul 11, 2010 · Viewed 12.7k times · Source

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!

Answer

Warren Noronha picture Warren Noronha · Jul 11, 2010

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 %>