我有两种模式:
Group and Task(名称:string,point:integer,state:string(to_do,in_progress,done),group_id:integer)
组has_many:tasks和Task belongs_to Group。
我想写一个方法,总结所有具有状态的任务:为每个组完成。
我试着写下来:
class Group < ActiveRecord::Base
has_many :users
has_many :tasks
accepts_nested_attributes_for :users, allow_destroy: true
has_one :grade
def amount_of_points
amount = Object.tasks.point.where(state:"done")
amount
end
end
但它不起作用。如何处理?
答案 0 :(得分:1)
如果您打算基于每个组的如果您想获取的总和对于每个组的所有任务,,然后你可以point
的所有任务的总和
Task.includes(:group).where("state = ?", 'done').sum(:point)