如何覆盖活动记录对象中的属性分配?
问题描述:
我知道你可以用虚拟属性来做到这一点,但是如果该列实际存在?如何覆盖活动记录对象中的属性分配?
例如,我的模型有一个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