2012-10-19 4 views
1

Michael Hartl 자습서 8 장에서 로그인 페이지를 설정하고 데이터베이스에 기본 64 문자열을 보관할 새 열을 만듭니다. 이 자습서에서는 remember_token이라고합니다. user.rb에서 :Hartl Rails 튜토리얼 8 장 : remember_token은 어떻게 작동합니까?

private 

    def create_remember_token 
     self.remember_token = SecureRandom.urlsafe_base64 
    end 

자기 자신은 remember_token이라는 속성을 갖고 있습니까? 이것은 이미 내장되어 있습니까? 아니면 다른 곳에 만들어 졌습니까? 어쩌면 이걸 잘 이해하지 못했을 수도 있습니다.

그는 기록 :

과제는 우리가 모두 원하는 것을하지 remember_token라는 지역 변수를 만드는 것 자체 않고 있기 때문에 액티브 레코드가 데이터베이스 열을 기반으로 특성을 합성하는 방식의

. 자체를 사용하면 사용자가 저장 될 때 이 다른 속성과 함께 데이터베이스에 기록되도록 해당 할당이 사용자의 remember_token을 설정하도록합니다.

사용자가 기억 토큰을 어떻게 얻었습니까? 특정 열의 데이터베이스에이를 쓰는 방법을 어떻게 알 수 있습니까?

attr_accessible :name, :email, :password, :password_confirmation 

이 remember_token에 대해 아무것도 없습니다 : 다음과 같은 코드를 가지고있는 user.rb에서

. 이것을 User.save에 포함시키는 것을 어떻게 알 수 있습니까?

답변

1

이 컨텍스트에서 selfRuby on Rails TutorialSection 8.2.1에 마이그레이션으로 만든 데이터베이스 열 때문에 remember_token 특성을가집니다. (붙이는 self는 속성에 할당 할 필요가있다, self없이, 루비 그냥 remember_token라는 지역 변수를 만들 것입니다.) 내가 볼

+0

. 따라서 마이그레이션으로 생성 된 속성은 attr_accessible에 추가하는 것과 동일합니까? 감사! –

+0

콘솔에 self를 입력하면 "main"이됩니다. 나는 그 후에 루비 책을 읽어야 할 것 같아요. –

+0

* 마이그레이션으로 생성 된 모든 * 속성은 활성 레코드를 통해 자동으로 사용할 수 있지만 'attr_accessible'목록의 일부가 아닌 한 대량 할당을 통해 변경할 수 없습니다. – mhartl

관련 문제