내 사용자 모델에서 has_secure_password를 사용하려고하지만 응용 프로그램에서 작동하는 동안 내 테스트가 모두 중단됨을 확인했습니다. 내가 그러나 때,has_secure_password를 사용하여 사용자 만들기
describe User do
before(:each) do
@attr = { :forename => "Captain",
:surname => "Hook",
:email => "[email protected]",
:password => "password",
:password_confirmation => "password" }
end
it "should create a new instance given valid attributes" do
User.create!(@attr)
end
end
이 작동하지 않습니다 단순히 내가 유효한 속성을 가진 새 사용자를 만들 수 있다는 것을 확인
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email
validates :email, :presence => true,
:format => { :with => /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i },
:uniqueness => { :case_sensitive => false }
validates :password, :presence => true
end
내 첫 번째 테스트 (RSpec에) : 나는 간단한 사용자 모델을 가지고
user = User.new(@attr);
user.password = "password";
user.save
잘 작동합니다. 이것은 has_secure_password가 password_digest
의 생성을 처리하는 새로운 메서드 password를 추가하기 때문에 이것이라고 생각합니다. 이렇게 직접 호출하면 필요한 필드가 생성됩니다. User.create를 사용할 수 있지만이 메서드를 호출 할 수있는 방법이 있습니까?
'attr_accessible을했다 암호 : –
을 password_confirmation' 어떻게 레일 4 당신이? Rails 4에는 더 이상 'attr_accessible'이 없기 때문에 묻습니다. –
대신에'attr_accessor'를 사용해야합니다. –