0

我是 TDD 和 Rails 的新手。我正在尝试测试一个“别名”关联(不知道这是否是一个有效术语)。

我的测试:

it 'an order should always have a customer' do
  o = Order.new
  o.should_not be_valid
end

我的模型:

class Order < ActiveRecord::Base
  belongs_to :customer, :class_name => Person
  validates_associated :customer
end

我不知道validates_associated是否符合它的含义。我的测试仍然将带有“customer_id:nil”的订单视为有效。

人物模型:

class Person < ActiveRecord::Base
  attr_accessible :first_name, :last_name, :middle_name
  validates_presence_of :first_name, :last_name

  has_many :addresses
  has_many :orders, :as => :customer
end

我想确保保存的每个订单都有一个关联的客户(一个 Person 对象)。我错过了什么吗?

4

1 回答 1

0

validates_associated只告诉模型也应该在关联对象上运行验证(查看此处的文档)。您仍然需要在Order. 看看这个 SO question。我可能是错的,但我认为它会为您指明您正在寻找的方向。

于 2013-05-30T17:38:24.433 回答