@maxprof
Студент

Как сделать подсчет суммы данных из определенного поля в таблице (не БД) rails?

Здравствуйте, нужно подсчитать сумму всех "зарплат врачей из таблицы".
Вот так вывожу данные
<% @doctor.each do |doc| %>
      <tr>
        <td><%= doc.doctor_first_name %></td>
        <td><%= doc.doctor_second_name %></td>
        <td><%= doc.current_money %></td>
        <td><%= link_to 'Переглянути', doc %></td>
      </tr>
    <% end %>

Нужно прибавить все значения полей doc.current_money. Проблема в том, что ActiveRecord тут не поможет, так как эти значения не хранятся в БД, а рассчитываются в модели. Подскажите как выйти из такой ситуации.
Вот откуда я их беру (Модель doctor)
def current_money
    doctor_hour_price.to_f*users.where("enter_date >= ?", 7.days.ago).count
  end
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
2ord
@2ord
Думаю, подсчёт суммы всех заработанных докторами денег за неделю делается так:

Doctor.
  joins(:users).
  group("users.id").
  where("enter_date >= ?", 7.days.ago).
  select("SUM(COUNT(users.id) * doctor_hour_price) as total_money").
  total_money


Кстатит, здесь 7 дней имеется в виду 7×24 часов назад, а не, скажем, с начала рабочего дня 7 дней назад.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы