我遇到一个问题:将locals变量传递给两个级别的视图。通常,我只是使用一个,我只是想知道是否有什么东西阻止了这个:
例如:
<%=render :partial => 'shared/following', :locals => {:following => @following} %>
在shared / _following.html.erb中(假设item的类型为“Location”):
<% following.each do |item| %>
<% class_type=item.class.to_s %>
<%#works fine %>
<%=debug(item) %>
<%# a bunch of different types of things to follow %>
<%=render 'shared/box-'+class_type.downcase! , :locals => { :item => item } %>
<% end %>
在shared / _box-location.html.erb中:
<% # this doesn't work nor does @item.name %>
<%=item.name %>
我可以做两个级别的本地人吗?我怎么能/我应该纠正?
THX
答案 0 :(得分:2)
另请注意,明确指定:传递时需要部分 其他选项如:layout。
(Source)
:locals
也是一个额外选项,请尝试以下方法:
<%= render :partial => 'shared/box-'+class_type.downcase!, :locals => { :item => item } %>
答案 1 :(得分:0)
你需要使用
<%=render :partial => 'shared/box-'+class_type.downcase! , :locals => { :item => item } %>
或
<%=render 'shared/box-'+class_type.downcase! , :item => item %>
答案 2 :(得分:0)
请你试试这个,让共享/盒子变得偏袒。
<%=render :partial =>'shared/box-'+class_type.downcase! , :locals => { :item => item } %>
希望它会有所帮助。
答案 3 :(得分:0)
有时候我遇到了同样的问题。我刚刚添加了“:partial”,之后就可以了。试试这个。
<%=render :partial => 'shared/box-'+class_type.downcase! , :locals => { :item => item } %>