开发者

How can I override the attribute assignment in an active record object?

I know you can do this with virtual attributes, but what if the column actually exists?

For example, my model has a raw_topic column. When raw_topic is set, I want artist and song_title to be set based off of raw_topic's contents. Ideally, I'd 开发者_JS百科like to override the raw_topic= method, but rails doesn't seem to like that.

What's the proper way of doing this? Is a callback the only way?


You can do it like this:

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

That way you can ensure you still have the raw topic if you need to act on it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜