は、私が持っている:私のユニットテストでこのモデルを更新しても検証が行われないのはなぜですか? Railsの3.1と
class Status < ActiveRecord::Base
has_many :participations, :dependent => :destroy
has_many :users, :through => :participations
validates :users, :presence => true
end
を、私が行います
user = User.create(:name => "Bob")
status1 = Status.create(:description => "available")
user.statuses << status1
とget:
のActiveRecord :: RecordInvalid:検証に失敗しました:ユーザーがすることができます空白にしないでください
ただし、最後のli私はそうです:
status1.users << user
うまくいきます。
はなぜ検証がためにトリガーを取得ん:
user.statuses << status1
UPDATE:フル
test "Return all statuses associated with the manager" do
manager = Manager.create(:email => "[email protected]", :password => "password", :password_confirmation => "password")
workshop = Workshop.create(:name => "Bob Autos")
manager.workshop = workshop
manager.save
user = User.create(:name => "a customer")
workshop.users << user
status1 = Status.create(:description => "Car is ready")
status2 = Status.create(:description => "problem with exhaust")
status3 = Status.create(:description => "parts delivered")
user.statuses << status1
user.statuses << status2
assert_equal([status1, status2], manager.statuses)
user.statuses << status3
assert_equal([status1, status2, status3], manager.statuses)
end
johnさん、ありがとうございます。なぜなら、 "ユーザーは空白にできません"そこ?私はユーザーをステータスに割り当てるプロセスにいるためです。ステータスが実際に作成されたときに検証エラーが発生した場合、私はあまり驚いていなかったと思います。意図的に:-)私のアプリは共有ステータスを許可します。 – pingu