Я создаю пример сайта, чтобы ознакомиться с RoR. Я до некоторой степени следовал книге «Agile Web Development с Rails», и сейчас я экспериментирую и использую ее в качестве справочного материала, однако мне не удалось найти ответ на мою проблему.
У меня есть две модели интереса, одна - супермаркет, другая - супермаркет. Очевидно, что сеть супермаркетов имеет кучу супермаркетов. То, что я пытаюсь сделать, - это получить базовую страницу «шоу» для одной сети супермаркетов, чтобы отобразить список принадлежащих ей супермаркетов.
Я также не хотел повторяться (потому что, по-видимому, это очень плохо), и поэтому я подумал, что могу использовать «render», чтобы вставить 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' %>
Чтобы вставить его на выставочную страницу супермаркета.
Меня интересует, является ли это хорошей практикой. Мне кажется странным инициализировать переменную для использования частичным, когда то, что я хочу отобразить, является точным результатом действия «index» контроллера супермаркета. Комментарии?
Пожалуйста, попросите любые необходимые разъяснения.