2014-06-13 53 views
0

我有以下associatons:如何在創建時驗證關聯對象的數量?

A User has_many Order 
A Order belongs_to User 

創建用戶時,我能夠做到這一點是這樣的:

User.create(:orders_attributes => [{:description => 'test'}, {:description => 'test2'}] 

,因爲用戶模型中我有

accepts_nested_attributes_for :orders 

我希望能夠限制創建用戶時可創建的訂單數量,方法是:

validate :max_orders, on: :create 

def max_orders 
    errors.add(:base, "error message") if orders.count > 1 
    end 

,但我一直眼看self.orders爲0

我缺少什麼?

回答

2

你可以這樣做。

validates :orders, length: { is: 1 }, on: :create 
+0

試過用''驗證:訂單,長度:{爲:1}上:create'',它讓我創建一個用戶有兩個訂單... –

+1

輸錯!我正在寫驗證,而不是驗證:)謝謝它的作品! –

+0

@HommerSmith好聽。 – Iceman

相關問題