Предположим, у вашей модели есть атрибут access_count
, вы можете переопределить initialize
, чтобы сделать что-то вроде этого:
Обновление: Ответ Шадвелла лучше;направьте ваши откровения в ту сторону.Оставим ниже, если это кому-то пригодится.
class Apple < ActiveRecord::Base
def initialize *args
super
incr_access_count
end
private
def incr_access_count
update_attribute :access_count => access_count + 1 unless new_record?
end
end
Это довольно наивно, но в любом случае предсказуемо.Мне кажется, что делать это явно в вашем контроллере было бы гораздо более мудрым шагом.Обновление записи каждый раз, когда она извлекается из базы данных, имеет значительный запах, и трудно представить сценарий, в котором количество времени, в течение которого она была извлечена, было бы полезным показателем.