반응형
두 페이지로드시 Rails 플래시 메시지가 유지됨
다음 코드와 함께 Rails 애플리케이션에서 플래시 알림을 사용하고 있습니다.
flash[:notice] = "Sorry, we weren't able to log you in with those details."
render :action => :new
플래시 메시지는 '새로 만들기'작업에서 예상대로 렌더링되지만 사용자가 방문하는 다음 페이지에도 표시됩니다. 한 번만 표시되어야하지만 무언가가 주변에 붙어 있습니다.
이 문제를 해결하는 방법에는 두 가지가 있습니다.
하나는 사용하는 것입니다
flash.now[:notice]
현재 요청이 끝날 때 플래시를 삭제해야하며 리디렉션 후에 사용하지 않는 경우
두 번째는 전화하는 것입니다.
flash.discard(:notice)
요청 끝에.
표준 플래시 메시지는 "다음"요청을 위해 보관됩니다. 예를 들어 생성 또는 편집 요청을 처리하는 동안 플래시를 생성 한 다음 사용자를 쇼 화면으로 리디렉션합니다. 브라우저가 쇼 화면에 다음 요청을하면 플래시가 표시됩니다.
실제로 쇼 화면 자체에서 플래시를 생성하는 경우 flash.now
.
Ruby on Rails API 문서에서 Flash 해시 작동 방식을 확인하세요.
좋아, 나는 이것을 해결했다. 이를 우회하는 방법은 다음을 사용하는 것입니다.
flash.now[:notice] = "Sorry, we weren't able to log you in with those details."
render :action => :new
핵심 부분은 flash [: notice] 대신 flash.now [: notice]입니다.
또는 다음과 같이 작업을 호출 할 수 있습니다.
flash.now[:notice] = "Sorry, we weren't able to log you in with those details."
render 'new' #or render :new
참고 URL : https://stackoverflow.com/questions/1017210/rails-flash-message-remains-for-two-page-loads
반응형
'developer tip' 카테고리의 다른 글
ASP.NET Core의 get 메서드에 여러 매개 변수를 전달하는 방법 (0) | 2020.11.17 |
---|---|
ReSharper는 메서드가 정적 일 수 있지만 그렇지 않은 경우 불평합니다. (0) | 2020.11.17 |
급행 경로 매개 변수 조건 (0) | 2020.11.17 |
섹션 헤더가 UITableView 일반 스타일에서 수행하는 것처럼 UICollectionView에서 Supplementary View를 플로팅하는 방법 (0) | 2020.11.17 |
childNode를 통해 루프 (0) | 2020.11.17 |