我是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 是否符合它的含义。我的测试仍将'custumer_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对象)。 我错过了什么吗?
答案 0 :(得分:0)
validates_associated
仅告诉模型,还应对相关对象运行验证(查看文档here)。您仍需要在Order
上添加验证。看看this SO question。我可能是错的,但我认为它会指向你正在寻找的方向。