Passenger에서 Rails 3.0.3을 사용하면 모든 요청에 대해 마지막 플래시 세트가 유지되는 문제가 있습니다. 사용자 후 후속 요청이 성공적으로 로그인 한에 플래시 메시지가 지워지지 않습니다
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to login_url
return false
end
end
그러나 우리는 여전히 플래시 메시지가,를 지속 얻을 : 사용자가 이전 필터에 로그인해야하는 경우 예를 들어, 우리는 플래시 메시지를 설정하는 전체 세션을 지우지 않습니다.
이 예에서는이 메시지를 설정하는 유일한 곳이며 사용자가 로그인하지 않았을 때만 설정되도록하고 있습니다. 사실을 넣은 다음 비공개 블록을 새로 고친 다음 제거했습니다. 모든 후속 요청에 대해서는 'Test'플래시 메시지가 유지됩니다.
개발 또는 프로덕션 환경에서 앱을 실행하면 이러한 현상이 발생합니다.
내 질문에 말했듯이이 방법 만이 아니라 단지 예제 일뿐입니다. 그 방법에서 모든 것을 제거하고 플래시 [: notice] = 'Test'에 넣으면 'Test'가됩니다. 이를 제거하면 메서드에 아무 것도없고 'Test'고지가 영원히 멈 춥니 다. – DEfusion