2015-12-30 98 views
0

有人可以請幫助如何在此活動記錄條件中使用'where'條件或爲什麼這會在rails 4.2中引發錯誤?在Ruby中的活動記錄計算

p = Project.first 
    Project Load (34.6ms) SELECT `projects`.* FROM `projects` ORDER BY `projects`.`id` ASC LIMIT 1 
=> #<Project id: 1, name: "First Project", created_at: "2015-12-29 16:27:42", updated_at: "2015-12-29 16:27:42"> 

2.2.1 :031 > p.tasks.sum(:priority) 
    (26.8ms) SELECT SUM(`tasks`.`priority`) FROM `tasks` WHERE `tasks`.`project_id` = 1 
=> 9 

2.2.1 :032 > p.tasks.sum(:priority).where(:complete => 0) 
    (0.2ms) SELECT SUM(`tasks`.`priority`) FROM `tasks` WHERE `tasks`.`project_id` = 1 
**NoMethodError: undefined method `where' for 9:Fixnum** 

回答

1

sum回報Fixnum,沒有AR關係。您需要反轉wheresum訂單:

p.tasks.where(:complete => 0).sum(:priority)