在谈到Rails时,我仍然非常环保,我试图创建一个范围或类方法来帮助我获得最活跃的项目"在我的时间跟踪应用程序中:
任务属于项目和用户。
我可以使用project.rb上的类方法访问user.tasks和project.tasks以及查找每个项目的小时数
def project_hours
tasks.sum(:hours)
end
理想情况下,我希望能够执行查询以获取用户B为项目A执行的所有任务
然后作为后续工作,尝试按此用户按该项目的任务小时数订购项目。
如果之前已经介绍过,我道歉,我不确定是否有有效的方法可以实现这一目标?
非常感谢。
答案 0 :(得分:0)
在您的用户模型中:
def tasks_by_project(project)
self.tasks.where({:project_id => project.id}).group('tasks.project_id').order('SUM(tasks.hours) ASC')
end
现在你可以做到
@user = User.find(1)
@project = Project.find(232)
# return a list of projects scoped by user_id andproject id, ordered by task hours
@user.tasks_by_project(@project)