Как добавить значения из столбцов таблицы? - PullRequest
0 голосов
/ 15 ноября 2010

Привет, у меня есть таблица, в которой я перечисляю различные значения. Теперь я хочу добавить итоговые значения в мою таблицу, которая подсчитывает значения из каждого столбца и добавляет его в столбец с общим значением. Как мне это сделать? И возможно ли сделать это простым способом в представлении, или я обязан сделать это в модели? Спасибо за любую помощь!

<div class="chart-data">
  <table>
    <caption>Data</caption>
    <thead>
      <tr>
        <% statistic.column_titles.each do |column| %>
          <th><%= column %></th>
        <% end %>
        <th>Total</th>
      </tr>
    </thead>
    <tbody>      
      <% statistic.rows.each do |row| %>
        <tr>
          <th scope="row"><%= row.title %></th>
          <% row.data.each do |column| %>
            <td><%= column %></td>
            <% end %>
        </tr>
          <------- Here i want to have the code that sums the values from the columns above to form the 'Total'
      <% end %>
    </tbody>
  </table>  
</div>

Ответы [ 3 ]

2 голосов
/ 15 ноября 2010
class Row < ActiveRecord::Base
  def total_spent
    sum(:data)
  end
end

<tbody>      
  <% @rows.each do |row| %>
    <tr>
      <th scope="row"><%= row.title %></th>
      <% row.data.each do |column| %>
        <td><%= column %></td>
      <% end %>
    </tr>
    <td><% row.total_spent %></td>
  <% end %>
</tbody>

Предполагая, конечно, что строка является моделью, вы можете переместить эту логику в модель строки. Вы также можете кэшировать страницу, если хотите.

2 голосов
/ 15 ноября 2010

Простым решением было бы сохранить переменную, которая суммирует столбец, а затем использовать ее для итоговой суммы в конце.

0 голосов
/ 15 ноября 2010

Если ваши данные являются результатом запроса ActiveRecord к базе данных, вы можете попросить базу данных выполнить суммирование всех столбцов.Это был бы один дополнительный запрос, но он выполнялся бы очень быстро, так как это то, для чего предназначены базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...