2012-10-10 67 views
1

说,我有一个模型A属性nameActiveRecord检测属性设置

如果我这样做A.new(name: nil).name_changed?,它将返回false

如何检测属性是否已设置,即使它没有改变?

+1

而不是检查名称已更改,为什么不检查名称是否为零? –

+0

如果它是零我必须设置它的一些价值,但如果它是**设置**无我必须验证它 –

回答

3

尝试类似:

class A < ActiveRecord::Base 
    attr_accessor :name_set 

    def name=(v) 
    @name_set = true 
    super(v) 
    end 
end 

现在你可以用name_set方法查询对象。

+0

是啊,我想过这个,但我必须手动创建方法。我只是认为rails有内置的方法 –