我嘗試通過以下http://bcardarella.com/post/4668842452/exploring-rails-3-1-activemodel-securepassword::加載ActiveModel未定義SecurePassword方法`password_digest =」
使用軌道加載ActiveModel 3.1 :: SecurePassword和我結束了紅燈......
user.rb
class User < ActiveRecord::Base
has_secure_password
validates :password, :presence => { :on => :create }
end
factory.rb
Factory.define :user do |f|
f.email "[email protected]"
f.password "foobar"
f.password_confirmation { |u| u.password }
end
spec_user.rb
describe User do
it "should authenticate with matching username and password" do
user = Factory(:user, :email => '[email protected]', :password => 'secret')
User.authenticate('[email protected]', 'secret').should == user
end
end
,我也得到了紅燈......
Failure/Error: user = Factory(:user, :email => '[email protected]', :password => 'secret')
NoMethodError:
undefined method `password_digest=' for #<User:0xb383460>
,我認爲這是耙分貝:遷移問題,我期待到軌C,但顯然password_digest定義。
ruby-1.9.2-p180 :007 > a = User.new
=> #<User id: nil, email: nil, password_digest: nil, is_admin: nil, created_at: nil, updated_at: nil>
ruby-1.9.2-p180 :008 > a.password_digest = 3
=> 3