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 に答える