2014-09-10 1 views
-3

로컬 서버의 관리자 비밀번호를 변경하려고합니다. Ruby on Rails 관리자 비밀번호

나는 터미널에서 다음 단계를 사용 :
User.find_by(email:'[email protected]') 
u=_ 
u.password='newpassword' 
u.save 

다음 나는 그것이 전무를 보여줍니다 u.password 입력하여 실제로 변경있어 않았는지 를 확인합니다.

여기에 누락 된 자료가 있습니까? 감사합니다.

+0

모든 사람은 아무도'U = _' 무엇 물었다 너무 바빠서 응답입니다 :

user.valid? puts user.errors # => prints list of errors 

SecurePassword 대해 자세히 알아? –

+2

@MichalSzyndel 아마도 OP는 irb에서 이것을 실행하고 있습니다 ("터미널에서"의미하는 바를 추측 할 것입니다). irb의 변수'_'는 마지막 표현식의 결과를 나타냅니다. 그것은'u = User.find_by (email : '[email protected] ')와 동일합니다. – iamnotmaynard

답변

1

대부분이 모델에서 has_secure_password을 사용하고 있습니다. 암호를 암호화하므로 콘솔을 통해 읽을 수 없습니다. 이것은 염려 할 이유가 아니라 오히려 예상되는 보안 기능입니다. 새로운 암호로 로그인하면 모든 것이 작동합니다.

-1

레코드를 실제로 저장하고 있는지 또는 예외 (오류)가 있는지 확인하려면 u.save!을 수행 할 수 있습니다.

1

대부분의 경우 실제 비밀번호를 변경하려면 passwordpassword_confirmation을 제공해야합니다. 따라서이 시도 :

user = User.find_by(email:'[email protected]') 
user.password    = 'newpassword' 
user.password_confirmation = 'newpassword' 
user.save 

을 중 하나가 작동하지 않는 경우, 오류 메시지를 읽을 수도 있습니다보다. 아마도 당신이 객체가 유효하지 않습니다 : http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html