本地人可以在rails视图中传递两个级别吗?

时间:2012-02-17 03:54:02

标签: ruby-on-rails ruby-on-rails-3 erb

我遇到一个问题:将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

4 个答案:

答案 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 } %>