2011-12-28 2 views
2

У меня есть две таблицы: одна называется Projects, а другая называется Documents (проекты имеют много документов, документы принадлежат проектам).Добавление всех строк в конкретный столбец в Rails?

В таблице «Проекты» есть столбец «limit», в котором пользователь может указать количество необходимых им документов.

Я хочу добавить все ограничения и получить одно значение. Так, например, если проект A имеет предел 5, проект B имеет предел 10, а проект C имеет предел 8, я хочу иметь возможность отображать «23».

Какая у вас правильная команда Ruby?

ответ

6

ActiveRecord::Base выставляет SUM функцию SQL в качестве метода суммы, так

Project.sum(:limit) 

должен сделать трюк. Это знают областей и так далее, так что вы могли бы сделать

Project.where(:active => true).sum(:limit) 

вычислить сумму только для строк, где active был истинным или

person.projects.sum(:limit) 

просуммировать пределы проектов, связанных с человеком, (при условии, человеко has_many или HABTM проекты)

MIN, MAX и AVERAGE подвергаются подобным же образом.

+0

Это сделало трюк. Большое спасибо @ Frederick-cheung !! – cdotfeli

Смежные вопросы