저는 이것이 간단한 문제라고 생각합니다. 지금까지 나는 사용자 모델을위한 새로운 발판을 만들기 위해 레일에서 새로운 사용자 생성시 입력 매개 변수를 수정하는 방법 (저장됩니다)?
rails generate scaffold User username:string email:string password:string
user.rb
입니다 :
class User < ActiveRecord::Base
validates :username, presence: true, length: { in: 2..50 }, uniqueness: true
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true
validates :password, presence: true, length: { in: 4..50}
#self.password = 'abcd' #I can't even change the parameter to something hard-coded!
end
나는 몇 가지 검사를 서면으로 작성했습니다, 그 위대한 작품. 다음 단계는 해시 함수를 통해 password
매개 변수를 넣고 (교육용으로 직접 작성하려는) 원본 문자열 대신 새로 수정 한이 문자열을 저장하는 것입니다. 나는 이것을하는 방법을 이해하지 못하는 것입니까? create
방법으로 users_controllers.rb
에서 호출되는 user.rb
에 메소드를 생성합니까?
rails console --sandbox
을 수행하고 테스트를 작성하여 테스트하고 싶습니다.
은 그래서 내 사용자 테이블은 열은'password' 또는'password_digest'라는 것? 그리고 내가 콘솔에서 놀고있을 때'User.new (..., password : "pass")'또는'User.new (..., password_hash : "pass")'를해야합니까? 감사. – bourbaki4481472
테이블에는 password_digest 만 있지만 모델에는 암호도 있습니다. 따라서 사용자가 양식의 암호 텍스트 필드를 채우면 암호 속성을 해당 값으로 설정 한 다음 해당 값에 해시 매직을 수행합니다. – Iceman
그게 내가 생각한거야,하지만 어떻게 사용자가'password_digest'를 통과시키지 못하게 할 수 있습니까? – bourbaki4481472