这是代码:
<ul >
<% items.each do |item|%>
<%= render :partial => "somepartial", :locals => { :title => item.title} %>
test_text
<% end %>
</ul>
部分:
<li><a><%= title %></a></li>
和输出是:
<ul >
<li><a>item1</a></li>
<li>test_text</li>
<li><a>item2</a></li>
<li>test_text</li>
<li><a>item3</a></li>
<li>test_text</li>
</ul>
&LT; li> test_text周围的标签是额外的。部分和模型没有关系,所以不建议我使用收集方法。当partial在每个循环内部渲染时,rails不会在其周围放置li标签,但除了partial之外的任何东西都会在它们周围生成li标签。
答案 0 :(得分:0)
而不是:
<% items.each do |item|%>
<%= render :partial => "items/item", :locals => { :title => item.title} %>
<% end %>
试试这个:
<%= render :partial => "items/item", :collection => items %>
答案 1 :(得分:0)
这个问题对我来说并不完全清楚,所以也许我应该避免回答。 但是,我建议使用haml,这样可以提供更清晰的视图。
您的主要观点将变为:
%ul
= render :partial => "items/item", :collection => items
,您的部分items\_item.html.haml
看起来像这样
%li
%a
= item.title
我在li
- 项目中没有看到真正的链接,所以也许您想要这样的内容:
%li
= link_to item.title, item_path(item)