Как я могу переопределить присвоение атрибута в активном рекордном объекте?

Я знаю, что можно сделать это с виртуальными атрибутами, но что, если столбец на самом деле существует?

Например, моя модель имеет a raw_topic столбец. Когда raw_topic установлен, я хочу artist и song_title быть установленным базирующийся прочь raw_topicсодержание. Идеально, я хотел бы переопределить raw_topic= методу, но направляющим, кажется, не нравится это.

Каков надлежащий способ сделать это? Действительно ли обратный вызов является единственным путем?

5
задан ryeguy 27 March 2010 в 05:53
поделиться

1 ответ

Вы можете сделать это следующим образом:

def raw_topic=(value)
  # do something with raw topic
  self[:raw_topic] = value
end

Таким образом, вы можете быть уверены, что у вас все еще есть необработанная тема, если вам понадобится действовать в соответствии с ней.

10
ответ дан 13 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: