我正在構建一個示例站點來熟悉RoR。我遵循了「使用Rails進行敏捷Web開發」一書,現在我正在試驗並將其用作參考,但是我一直無法找到解決問題的答案。呈現其他控制器的模板(Ruby on Rails)
我有兩個興趣模型,一個是超市和另一個超市。顯然,一家超市連鎖店擁有一堆超市。我想要做的是獲得單個超市連鎖店的基本「展示」頁面,以顯示屬於它的超市列表。
我也不想重複自己(因爲顯然這是一件非常糟糕的事情),所以我想我可以使用「渲染」將超市的index.html.erb插入到supermarketchain/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' %>
要插入的supermarketchain的節目頁面上。
我想知道的是這是否是一種好的做法。在我想要顯示的是超級市場控制器的「索引」操作的確切結果時,初始化變量供部分使用時似乎很奇怪。註釋?
請查詢任何需要的說明。
謝謝! 好的,聽起來好多了。但是,對於我希望在其他模型頁面中包含的每個模型都進行部分分析,是否是一個好主意?我的主要問題是設計,而不是如何調用渲染。 – FrontierPsycho 2009-12-23 23:23:30
其實,仔細觀察,你的建議要求我改變我的偏好來操作單個項目,我相信,目前它需要一個集合並迭代它。我試了一下,但沒有奏效。 你認爲我更改這樣的代碼更好嗎? – FrontierPsycho 2009-12-23 23:27:38
我認爲你應該有個人超市的觀點。 *但是*您不必替換當前的「多重」視圖。相反,您可以在「多個」版本中使用單一視圖。然後你可以在你的代碼中使用它們。 – kikito 2009-12-24 15:36:54