以下是我将values /变量传递给partial的方法:
<%= 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”
我应该在哪里设置变量,以便可以从我的应用中的所有视图和布局访问它?
谢谢!
答案 0 :(得分:28)
如果您必须在所有视图中显示某些内容,还可以创建application_helper方法,例如:banner('Text', 'Content')
试试这个:
主页:
<%= render :partial => 'layouts/test',
:locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')}
%>
部分:
<%= text_1 %> <%= text_2 %>
答案 1 :(得分:12)
我相信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
访问它