2013-05-30 40 views
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它意味着什么。我的测试仍然以'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 

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

回答

0

validates_associated只告诉模型验证应该在关联的对象上运行(看看文档here)。您仍然需要在Order上添加验证。看看this SO question。我可能是错的,但我认为它会指向你所寻找的方向。

+0

我添加了一个** validates_presence_of **,它似乎在工作。谢谢。 – gverri