2011-12-09 2 views
2

다양한 유형의 플래시 메시지에 대해 다른 스타일을 사용하고 싶습니다 : 오류, 통지, 성공. 내보기로 전달되는 플래시 메시지 유형을 어떻게 식별 할 수 있습니까? 내 컨트롤러에서레일에서 플래시 [] 메시지 유형을 식별하는 방법

, 나는이 : 내 application.html.haml에서

flash[:error] = "Access denied." 

을, 내가 가진 :

- if not flash.empty? 
    - flash.each do |key, value| 
     %div{:class => "alert-message #{key}"}= value 

감사합니다.

+0

그것은 CSS 클래스를 보인다? – sevenseacat

답변

3

flash은 기본적으로 해시를 기반으로합니다. 각 종류의 플래시 메시지는 해당 유형의 기호 키와 관련된 값일뿐입니다. 따라서 flash[:error]은 키 유형이 flash[:notice]flash[:success] 인 오류 메시지 용입니다. 자신 만의 유형을 정의 할 수도 있습니다 (기호 만 사용하면됩니다). 한 번에 여러 개의 키를 설정할 수 있습니다 (예 : 동일한 요청에서 flash[:notice]flash[:error]을 설정할 수 있음).

이 예에서는 alert-message #{key}div이 생성됩니다. 당신이 flash[:notice]을 설정한다면, 예를 들어, 출력은 다음과 같습니다

<div class="alert-message notice">Notice message</div> 

그리고 그것은 당신이 설정 종류마다 1 개의 인쇄됩니다. 요청이 flash[:error] = 'something went terribly wrong'flash[:notice] = 'take a look around'을 설정 그래서 만약, 당신은 템플릿이 HTML을 얻을 것 : 당신이 이미 같은

<div class="alert-message error">something went terribly wrong</div> 
<div class="alert-message notice">take a look around</div> 
+0

감사합니다. 그게 정확히 내가 원하는 대답이다. – AdamNYC

관련 문제