我正在使用 Rails 3 rc、Factory Girl、Rspec 和 Authlogic。 有什么方法或原因会发生这种情况:
当我这样创建一个用户时:
@user = Factory(:user)
我遇到密码确认“太短”的问题。
我的工厂.rb是
Factory.define :user do |u|
u.username "Test User"
u.email "TestUser@gmail.com"
u.password "aoeuaoeu"
u.password_confirmation "aoeuaoeu"
#u.password_confirmation {|u| u.password}
end
但是当我手动传入 :password 和 :password_confirmation 创建一个时, 它工作得很好。
@user = Factory(:user, :password => "aoeuaoeu",
:password_confirmation => "aoeuaoeu")
有人知道是什么原因造成的吗?
最佳答案
这似乎与这里的人遇到的问题类似:
Authlogic and password and password confirmation attributes - inaccessible?
密码和确认必须像这样在属性散列中传递:
before(:each) do
@attr = {
:name => "Example User",
:email => "user@example.com",
:password => "foobar",
:password_confirmation => "foobar"
}
end
更多信息见:
http://railstutorial.org/chapters/modeling-and-viewing-users-two#top
关于ruby-on-rails - Rails 3 和 Factory Girl 仅在传入属性时创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586993/