0

我有一個模型X帶屬性日期類型日期時間如何在動態查找器中創建瞬態屬性?

什麼是使最新的一年可用於動態查找器的最簡單的方法?

例子:

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

最好說的是做一個範圍,而不是嘗試使用動態查找。您可以創建範圍年和範圍,並用它

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)

+0

使用這種做法,我想我需要實現任何必要的組合(例如一年及名稱)手動。對?這可能仍然是一個不錯的選擇。 – user569825 2012-03-21 11:19:44

+0

是的,你做。但是您可以重複使用併合並它們 – shingara 2012-03-21 13:20:02