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