Сравнить атрибуты во время частичной итерации - PullRequest
0 голосов
/ 09 января 2020

Я работаю над приложением Rail. В приложении есть частичная часть, которая передается в коллекцию, подобную этой:

<%= render ‘partial’, collection: @records, as: :record %>

Записи вызывают две другие таблицы: компании и статьи, которые помогают заполнить частичное. Компания has_many: статьи. У моего частичного заголовка в одной строке таблицы есть название компании, а в другой - заголовок статьи. Сейчас проблема в том, что если у компании более одной статьи, я получаю несколько строк названия компании и названия статьи, например:

Company 1
Article 1

Company 1
Article 2

Company 1
Article 3

Company 2
Article 1

Company 2
Article 2

Могу ли я как-то проверять название компании каждый раз в течение итерации и если это то же самое, не создать компанию строки? Я надеюсь на что-то вроде этого:

Company 1
Article 1
Article 2
Article 3

Company 2
Article 1
Article 2

Вот как выглядит мой фрагмент:

<tr>
  <td></td>
  <td colspan="6"class="supplier-name"><%= get_supplier_name(alert) %></td>
</tr>
<tr class="alerts-item">
  <td class="alerts-checkbox">
    <label class="cont">
      <input type="checkbox">
      <span class="checkmark"></span>
    </label>
  </td>
  <td colspan="3" class="alerts-table-info">
    <span>
      <strong><%= link_to get_article_title(alert), get_article_link(alert), target: '_blank' %></strong><br>
      <%= alert.alert.article.snippet %>
    </span>
  </td>
  <td>
    <a href="#link" class="alert-btn-color"><%= get_article_search_group_name(alert) %></a>
  </td>
  <td class="share-col">
    <button class="share-btn">Share</button>
  </td>
  <td>
    <div class="dropdown">
      <div class="dropdown-toggle">Resolve</div>
      <div class="dropdown-content">
        <span class="dropdown-title">Dropdown header</span>
        <a class="dropdown-item" href="#">Action</a>
        <a class="dropdown-item" href="#">Expandable</a>
        <a class="dropdown-item" href="#">Expand</a>
      </div>
    </div>
  </td>
</tr>

<tr> с <td>get_supplier_name(alert)</td> - это строка, которую я надеваю не хочу дублировать.

1 Ответ

1 голос
/ 09 января 2020

Используйте частичное для companies, тогда каждое частичное company.html.erb имеет частичное для article.html.erb.

...