Как я могу сделать переходный атрибут доступным в динамических поисках?
У меня есть модель X с атрибутом thedate типа 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 ответ
Лучшее слово - сделать область вместо попытки использовать динамический поиск. Вы можете создать область действия и область применения и использовать ее
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)