4
我知道你可以用虛擬屬性來做到這一點,但是如果該列實際存在?如何覆蓋活動記錄對象中的屬性分配?
例如,我的模型有一個raw_topic
列。當設置raw_topic
時,我想根據raw_topic
的內容設置artist
和song_title
。理想情況下,我想重寫raw_topic=
方法,但軌道似乎不喜歡那樣。
這樣做的正確方法是什麼?回撥是唯一的方法嗎?
我知道你可以用虛擬屬性來做到這一點,但是如果該列實際存在?如何覆蓋活動記錄對象中的屬性分配?
例如,我的模型有一個raw_topic
列。當設置raw_topic
時,我想根據raw_topic
的內容設置artist
和song_title
。理想情況下,我想重寫raw_topic=
方法,但軌道似乎不喜歡那樣。
這樣做的正確方法是什麼?回撥是唯一的方法嗎?
你可以這樣說:
def raw_topic=(value)
# do something with raw topic
self[:raw_topic] = value
end
這種方式可以確保您仍然有原始的話題,如果你需要採取行動。
我在過去做過類似的事情,「鐵軌似乎不喜歡這個」的意思是什麼,當你嘗試它時你有錯誤嗎? – Corey 2010-03-27 05:58:04