2010-03-27 58 views
4

我知道你可以用虛擬屬性來做到這一點,但是如果該列實際存在?如何覆蓋活動記錄對象中的屬性分配?

例如,我的模型有一個raw_topic列。當設置raw_topic時,我想根據raw_topic的內容設置artistsong_title。理想情況下,我想重寫raw_topic=方法,但軌道似乎不喜歡那樣。

這樣做的正確方法是什麼?回撥是唯一的方法嗎?

+0

我在過去做過類似的事情,「鐵軌似乎不喜歡這個」的意思是什麼,當你嘗試它時你有錯誤嗎? – Corey 2010-03-27 05:58:04

回答

9

你可以這樣說:

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

這種方式可以確保您仍然有原始的話題,如果你需要採取行動。