覆盖ActiveRecord属性

时间:2010-05-17 18:33:08

标签: ruby-on-rails ruby activerecord

我有一个带有完成的布尔列的模型,我想覆盖它,所以我可以添加一些条件代码。

我以前从未覆盖过ActiveRecord属性,想知道下面的方法是不是很好用?

class Article < ActiveRecord::Base
  def completed=(b)
    write_attribute(:completed, b)
    # IF b is true then do something
  end
end

1 个答案:

答案 0 :(得分:3)

你的方法很好。您建议的方法是ActiveRecord documentation中描述的方法(向下滚动到标题覆盖默认访问者

我要补充的一点是,根据您的具体情况,您可以在使用before_save回调作为替代方案后实现目标。