2010-03-27 1 views
4

Я знаю, что вы можете сделать это с помощью виртуальных атрибутов, но что, если столбец действительно существует?Как я могу переопределить назначение атрибута в активном объекте записи?

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

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

+0

Я делал подобные вещи в прошлом, что означает «рельсы, похоже, не так», вы получили ошибку, когда попробовали? – Corey

ответ

9

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

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

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

Смежные вопросы