Как я могу переопределить назначение атрибута в активном объекте записи? - PullRequest
5 голосов
/ 27 марта 2010

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

Например, моя модель имеет столбец raw_topic. Когда установлена ​​raw_topic, я хочу, чтобы artist и song_title устанавливались на основе содержимого raw_topic. В идеале я хотел бы переопределить метод raw_topic=, но rails, похоже, не нравится.

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

1 Ответ

10 голосов
/ 27 марта 2010

Вы можете сделать это так:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...