我正在构建一个示例站点来熟悉 RoR。我在一定程度上遵循了“Agile Web Development with Rails”一书,现在我正在试验并将其用作参考,但是我无法找到我的问题的答案。
我有两种感兴趣的模式,一种是连锁超市,另一种是超市。显然,连锁超市有一堆超市。我要做的是获取单个连锁超市的基本“显示”页面,以显示属于它的超市列表。
我也不想重复自己(因为显然这是一件非常糟糕的事情),所以我想我可以使用“渲染”将超市的 index.html.erb 插入到超市链/show.html.erb 页面中,就像这样:
<%= render :template => 'supermarkets/index' %>
但是,这在页面上产生了零输出。
我的下一个方法是使这个部分:
<div id="supermarket-list">
<h1><%= I18n.t "supermarket.title" %></h1>
<table>
<% for s in @supermarkets %>
<tr class="<%= cycle('list-line-odd', 'list-line-even') %>">
<td>
<%= s.supermarketchain.name %>
</td>
<td>
<%= s.address %>
</td>
<td class="list-actions">
<%= link_to I18n.t("general.show"), s%> <br/>
<%= link_to I18n.t("general.edit"), edit_supermarket_path(s) %> <br />
<%= link_to I18n.t("general.delete"), s, :confirm => I18n.t("general.confirmation"), :method => :delete %>
</td>
</tr>
<%end%>
</table>
</div>
然后使用:
<% @supermarkets = Supermarket.all %>
<%= render :partial => 'supermarkets/supermarket' %>
将其插入超市连锁店的展示页面。
我想知道这是否是一个好习惯。在我看来,初始化一个供部分使用的变量很奇怪,而我想要显示的是超市控制器的“索引”操作的确切结果。注释?
请要求任何需要的澄清。