Как можно показать вместе в представлениях несколько атрибутов из разных записей, которые имеют одинаковые имена, например, «вложенные» атрибуты? - PullRequest
0 голосов
/ 11 октября 2018

В системе аренды у меня есть модель Boardgame с атрибутами: имя, копия и ситуация.Ситуация - это другая модель, которая принадлежит1008 * И это показывает:

Catan
    - copy 1: available 
War
    - copy 1: rented 
War
    - copy 2: available 
 War
    - copy 3: rented

Но я хочу показать таким образом:

Catan:
- copy1: available

War:
 - copy 1: rented
 - copy 2: available
 - copy 3: rented

Теперь я вижу, что лучше было бы сделать атрибут «копия» другой моделью,вложенный.Но приложение уже работает, со всеми записями об аренде, клиентами и платежами и т. Д.

Как я могу сказать Ruby on Rails, чтобы проверить, совпадает ли имя, и в этом случае показать атрибуты ввложенная форма?

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете использовать Enumerable # group_by на @boardgames, чтобы расположить их так, как вы хотите (желательно не в самом представлении).

<% @boardgames.group_by(&:name).each do |name, games| %>
  <h3><%= name %></h3>
  <ul>
    <% games.each do |game| %>
      <li>copy <%= game.copy %>: <%= game.rented %>
    <% end %>
  </ul>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...