Ruby on rails 如何在创建时验证关联对象的数量?

Ruby on rails 如何在创建时验证关联对象的数量?,ruby-on-rails,validation,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 我希望能够通过执行以下操作来限制创建用户时可以创建的订单数量:

我有以下联系:

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


我错过了什么?

你可以这样做

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

validate:orders,length:{is:1},on::create
尝试了一下,它让我创建了一个有两个订单的用户……输入错误!我写的是validate而不是validates:)谢谢,它能工作@很高兴听到这个消息。