리디렉션시 Rails 플래시 알림을 표시하는 방법은 무엇입니까?
Rails 컨트롤러에 다음 코드가 있습니다.
flash.now[:notice] = 'Successfully checked in'
redirect_to check_in_path
그런 다음 / check_in보기에서 :
<p id="notice"><%= notice %></p>
그러나 통지는 표시되지 않습니다. 컨트롤러에서 리디렉션하지 않으면 완벽하게 작동합니다.
flash.now[:notice] = 'Successfully checked in'
render action: 'check_in'
그래도 리디렉션이 필요합니다 ... 그 작업의 렌더링이 아닙니다. 리디렉션 후 플래시 알림을받을 수 있습니까?
".now"를 제거하십시오. 따라서 다음과 같이 작성하십시오.
flash[:notice] = 'Successfully checked in'
redirect_to check_in_path
.now는 리디렉션하지 않고 렌더링 만 할 때 특별히 사용해야합니다. 리디렉션 할 때 .now는 사용되지 않습니다.
redirect_to new_user_session_path, alert: "Invalid email or password"
대신 :alert
사용할 수 있습니다:notice
표시하다
또는 한 줄로 할 수 있습니다.
redirect_to check_in_path, flash: {notice: "Successfully checked in"}
부트 스트랩을 사용하는 경우 리디렉션의 대상인 페이지에 멋진 형식의 플래시 메시지가 표시됩니다.
컨트롤러에서 :
if my_success_condition
flash[:success] = 'It worked!'
else
flash[:warning] = 'Something went wrong.'
end
redirect_to myroute_path
귀하의 관점에서 :
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
그러면 다음과 같은 HTML이 생성됩니다.
<div class="alert alert-success">It worked!</div>
사용 가능한 부트 스트랩 경고 스타일은 http://getbootstrap.com/docs/4.0/components/alerts/를 참조하십시오.
참조 : https://agilewarrior.wordpress.com/2014/04/26/how-to-add-a-flash-message-to-your-rails-page/
이것도 작동합니다
redirect_to check_in_path, notice: 'Successfully checked in'
나는 같은 문제가 있었고 / check_in보기에 포함하는 것을 잊었 기 때문에 귀하의 질문이 내 질문을 해결했습니다.
<p id="notice"><%= notice %></p>
컨트롤러에서 한 줄만 :
redirect_to check_in_path, :notice => "Successfully checked in"
참고 URL : https://stackoverflow.com/questions/15534128/how-to-display-a-rails-flash-notice-upon-redirect
'Programing' 카테고리의 다른 글
MySQL 데이터베이스에 데이터를 삽입하려면 어떻게해야합니까? (0) | 2020.12.14 |
---|---|
Windows 명령 줄에서 관리자로 명령을 실행하는 방법은 무엇입니까? (0) | 2020.12.14 |
위조 방지 토큰을 해독 할 수 없습니다. (0) | 2020.12.14 |
Java 8의 속성을 기반으로 객체 목록에서 중복 제거 (0) | 2020.12.14 |
Webpack "OTS 구문 분석 오류"글꼴로드 (0) | 2020.12.14 |