나는 마이클 하틀의 rails tutorial를 통해 갈거야 그는 가상 속성, remember_token
을 정의하고 나중에 remember
인스턴스 방법에 값을 할당하는 시점에왔다 :가상 속성은 메모리에서 어떻게 관리됩니까?
class User < ApplicationRecord
attr_accessor :remember_token
...
def remember
self.remember_token = User.new_token
update_attribute(:remember_digest, User.digest(remember_token))
end
end
그는 다음의 값에 액세스 remember
후 도우미 메서드의 가상 속성이 호출됩니다
def remember(user)
user.remember
cookies.permanent.signed[:user_id] = user.id
cookies.permanent[:remember_token] = user.remember_token
end
내 해석이되었다는 remember
방법은 실행 (어디 remember_token
이 제거 할당 된 후 기억. 이것은 분명히 새로운 값을 cookies.permanent[:remember_token]
에 할당 할 때 사용할 수 있기 때문에 여기에 해당되지 않습니다.
내 혼란의 원천은 데이터 지속성 때문입니다. remember_token
이 attr_accessor
의 도움으로 인스턴스 변수로 만들어 졌다고 가정하면 공식적으로 사용할 수 없게됩니까?
개체가 사라질 때. 인스턴스 메소드는 "사용할 수 없게"되지 않으며, 정의 된 객체의 일부입니다. – meagar
죄송합니다. 어쩌면 * 인스턴스 메서드 * 자체가 아니라 인스턴스 메서드가 생성하는 값일 수 있습니다. –
이러한 값은 다른 값처럼 가비지 수집됩니다. 참조가있는 한 삭제되지 않습니다. – meagar