我的模型 X , datetime 的属性 thedate 。
为动态查找器提供日期最简单的方法是什么?
示例:
X.find_by_year(2012)
X.find_by_location_and_year('here', 2012)
X.find_by_year_and_name(2012, 'name')
X.find_all_by_year(2012)
...
到目前为止,我找到了this custom finder approach,但显然需要手动实现每个所需的方法。我想避免这种情况。
答案 0 :(得分:0)
最好的说法是做范围,而不是尝试使用动态查找。您可以创建范围年份和范围并使用它
scope :year, lambda { |year| { ['thedate > ? AND thedate < ?', DateTime.now.change(:year => year).beginning_of_year, DateTime.now.change(:year => year).ending_of_year] }
您可以X.year(2012)