我的User.rb有:
attr_accessor :password, :password_confirmation
attr_accessible :password, :password_confirmation
用户的我的factory_girl是:
Factory.define :user do |u|
u.password "my_password"
u.password_confirmation "my_password"
end
My User.rb在保存对象时设置encrypted_password字段。
似乎我在工厂设置的值(密码)根本没有设置。
在我的测试中,我必须这样做:
it "should ...." do
user = Factory(:user)
user.password = "abc123"
end
为什么会出现这种情况?
我将密码属性作为访问者和可访问的。
是否存在冲突?
答案 0 :(得分:2)
我认为,上述问题是这些attr_accessor
字段未在数据库中保留,因此在factories.rb
中声明时它们会“丢失”。解决方案是在从工厂创建新对象时明确设置它们:
user = Factory(:user, :password => '123')
另见: