Я понимаю, что это не обязательно самый умный способ сделать это, но теперь мое любопытство активно, и мне любопытно как сделать это.
У меня есть модель в Railsпроект.Мы назовем это дело.В соответствии с ActiveRecord и всеми этими замечательными вещами, в базе данных определены столбцы, такие как UPDATED_AT, которые становятся методами для Deal: deal.updated_at => '04 / 19/1966 3:15 am '
Скажем, я хотел вместо этого иметьметоды, которые говорили мне день недели, а не всю дату и время.Я понимаю, что есть методы ON класса DateTime, поэтому я могу сделать
deal.updated_at.day_of_week => 'Monday' (*)
, но что, если я просто хотел
deal.updated_day => 'Monday'
, я могу написать в deal.rb
def update_day
self.updated_at.day_of_week
end
Понял.
Но что, если бы я хотел, чтобы ВСЕГДА имел метод, доступный для ЛЮБОГО столбца даты, который был добавлен в модель?
Я видел там define_method (некоторые здесь, на StackOverflow).Так что я это понимаю.Но я хотел бы назвать это сразу после того, как ActiveRecord сделал свое волшебство, верно?Поэтому, если бы в моей модели Deal были updated_at, creation_at, offer_at и lawsuit_at, я бы хотел, чтобы для каждого из них были подходящие методы.Что еще более важно, если бы другой разработчик пришел и добавил столбец с именем scammed_at, я бы хотел создать scammed_day вместе с методом scammed_at.
Как бы я это сделал?
Спасибо.
(*) Ну, или что-то в этом роде, я всегда смотрю этот вызов.