2012-10-10 63 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有內置的方法 –