2013-05-30 39 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