0
我正在使用Ruby on Rails 3.1.0,rspec-rails 2
和Factory
寶石。當我爲Account
類聲明Factory對象時,我遇到了與驗證過程相關的一些問題。初始化工廠對象時遇到問題
在模型文件我有:
class Account < ActiveRecord::Base
belongs_to :user
attr_accessible :name, ..., :password
validates :name,
:presence => true
...
validates :password,
:presence => true
end
在工廠的文件我有:
FactoryGirl.define do
factory :account, do
sequence(:name) { |n| "Foo #{n}"}
...
password 'psw_secret'
association :user
end
factory :user do
auth 'registered'
end
end
當在規範文件中我的狀態let!(:account) { Factory(:account) }
它能正常工作,但是當我用下面的:
let!(:user) { Factory(:user, :account => Factory(:account)) }
我得到這個錯誤:
Failure/Error: let!(:user) { Factory(:user, :account => Factory(:account)) }
ActiveRecord::RecordInvalid:
Validation failed: Account password can not be blank, Account is invalid
爲什麼我得到那個錯誤?我該如何解決這個問題?
你可以請你的':用戶'工廠更新嗎? – nowk
@kwon - 我更新了問題。 – user12882