Как я могу сделать переходный атрибут доступным в динамических поисках? - PullRequest
0 голосов
/ 15 марта 2012

У меня есть модель X с атрибутом дата типа datetime .

Какой самый приятный способ сделатьгод даты, доступной для динамических искателей?

Примеры:

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)
...

До сих пор я нашел этот пользовательский подход к поиску , но, очевидно, для этого потребуется реализоватьи каждый нужный метод вручную.Я хочу этого избежать.

1 Ответ

0 голосов
/ 15 марта 2012

Лучшее слово - сделать область вместо попытки использовать динамический поиск.Вы можете создать год и область действия и использовать его

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)

...