Programing

리디렉션시 Rails 플래시 알림을 표시하는 방법은 무엇입니까?

lottogame 2020. 12. 14. 07:43
반응형

리디렉션시 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

반응형