5

我在驗證派生類中關聯的存在時面臨奇怪的問題。驗證模型的子類中的關聯

Class Contact < ActiveRecord::Base 

    has_and_belongs_to_many :things 

end 

Class SubContact < Contact 

# validates_presence_of :things 
    validate :must_have_things 

    def must_have_things 
    if things.blank? 
     errors.add("Must select things") 
    end 
    end 

end 

SubContact類,我想驗證的事情存在,但沒有什麼工作。我已經嘗試過自定義和內置驗證程序 我該如何實現這一目標?

+0

@alexanderbird有問題OP從未提及過STI,所以我不認爲這個鏈接是有用的 –

+0

OP的示例代碼是否顯示STI?我猜如果聯繫人表中沒有類型列,那麼它不是STI ...... – alexanderbird

+0

是的,我們沒有任何類型的列。 –

回答

3

add需要一個屬性。嘗試使用:

errors.add(:base, "Must not be blank") 

在這種情況下,它是基類,但它也可以是任何其他屬性。提及SubContract類的屬性名稱或:base

+0

不需要返回true或false,因爲我們正在添加錯誤,但即使我們這樣做仍然不起作用。 –

+0

我編輯了我的版本。檢查 – mhaseeb

+0

否@mhaseeb這個東西不適用於繼承的資源。 –