如何在create上验证关联对象的数量?

时间:2014-06-13 21:56:52

标签: ruby-on-rails validation

我有以下关联:

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。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你可以这样做。

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