我正在创建一个 Rails 3.2 网络应用程序。在这个应用程序中,我有四张桌子。项目、任务、文章和项目。
我想要做的是在一次调用中汇总所有任务值(文章中的价格)。
这是我尝试过的并且有效,但这是最好的方法吗?
@project.tasks.where("status = ?", "completed").joins(:articles).sum(:price)
任务表
class Task < ActiveRecord::Base
has_many :articles
has_many :items, :through => :articles
end
文章连接表
class Article < ActiveRecord::Base
belongs_to :task
belongs_to :item
attr_accessible :account_id, :amount, :price, :item_id, :task_id
end
项目表
class Item < ActiveRecord::Base
has_many :articles
has_many :tasks, :through => :articles
end