2012-07-11 58 views
0

我有以下情况。Rails - 检索未来协会的最佳方式

我有一个项目模型,它有许多会议,有一个日期。

class Project < ActiveRecord::Model 
    has_many :meetings 
end 

class Meeting < ActiveRecord::Model 
    belongs_to :project 

    validates_presence_of :meeting_date 
end 

什么是cleanes最effiecient的方法来检索未来会议(即meeting.meeting_date> Time.now)?

非常感谢。

回答

5

在会议模式试试这个:

scope :future_meetings, lambda{where(["meetings.meeting_date > ?",Time.now])} 

参考吧:

@project.meetings.future_meetings 
+0

这似乎是:未来应该是在一个会议的范围,而不是项目的范围。有没有一种方法可以清楚地定义范围,然后根据它来获取future_meetings? – 2012-07-11 10:01:46

+0

我更新了答案。它应该工作,因为范围只定义了相关会议的过滤器。 – Matzi 2012-07-11 10:09:58

+4

稍微更习惯于将范围命名为“未来”,不需要重复模型名称。 – tokland 2012-07-11 10:23:47