2011-07-26 2 views
1

어떤 이유로 :alert은 작동하지 않지만 :notice은 정상적으로 작동합니다.: 경고가 작동하지 않습니다. : notice does

<% if notice %> 
    <p id="notice" ><%= notice %></p> 
<% elseif alert %> 
    <p id="alert" ><%= alert %></p> 
<% end %> 
<%= yield %> 

누군가 :alert이 (가) 작동하지 않는 이유를 알고 계십니까? 나는 레일을 사용하고 3.1.0.RC5


편집 : 디스플레이 모든 통지 및 알림 르우벤 Mallaby에 더 효과적인 방법 덕분에 발견.

<%- flash.each do |k, v| %> 
    <div id="<%= k %>"><%= v %></div> 
<% end %> 
<%= yield %> 
+5

ELSEIF는 루비에 ELSIF된다. – dschooh

+0

고마워! 꽤 많이 내 문제가 해결되었습니다 :) – imjp

+0

예, 레일스와 동일합니다. 알림과 경고가 모두있는 경우 알림 만 표시됩니다. 둘 다 보여주기를 원하면 두 개의 별도의'if' /'end's를 사용해야합니다. – dschooh

답변

2

플래시 용입니까? 그렇다면 명시 적으로 플래시를 호출 할 때 작동합니까?

<% if flash[:notice] %> 
    <p id="notice" ><%= flash[:notice] %></p> 
<% elsif flash[:alert] %> 
    <p id="alert" ><%= flash[:alert] %></p> 
<% end %> 
<%= yield %> 

그렇지 않은 경우 컨트롤러에서 문제가 될 수 있습니다. 알림 및 : 경고를 설정하는 코드를 게시하십시오.

+0

감사합니다! 플래시 [: notice]가 작동하지만 경고와 함께 작동하도록하려면 'elseif'메서드를 구현해야합니다. 'elseif '가'정의되지 않은 메소드'오류를 발생시키는 이유는 무엇입니까? 기묘한! – imjp

+1

elseif가 없습니다. 약간 다른 elsif입니다. 너무 미묘해서 원래 질문에서 빠졌어. 내 대답을 편집 할게. – SaucyK

+0

예, 원래 게시물에 대한 댓글에서 보았습니다. 고마워요 =) – imjp

6

모든 플래시 메시지를 표시 확인하십시오 :

<%- flash.each do |k, v| %> 
    <div id="<%= k %>"><%= v %></div> 
+0

당신 말이 맞아요 : O 이것에 대해 완전히 잊어 버렸습니다, 고마워요! – imjp

+0

수정 된 버전을보고 올바른지 확인할 수 있습니까? – imjp

+0

Btw 모든 통지 및 경고에 대해이 작업이 올바르게 작동합니까? 그러면 다음 코드의 알림도 표시됩니다. 'redirect_to root_url, : notice => "암호가 재설정되었습니다!"' – imjp

관련 문제