2011-07-26 135 views
1

出於某種原因,我的:alert不起作用,而:notice正常。:警報不起作用; :請注意

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

任何人都知道爲什麼:alert不工作?我使用Rails的3.1.0.RC5


編輯:找到更有效的方法得益於魯本馬拉比顯示所有通知和警報。

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

ELSEIF是ELSIF紅寶石。 – dschooh

+0

謝謝兄弟!這幾乎解決了我的問題:) – imjp

+0

是的,這對Rails來說是一樣的。請注意,如果您同時具有通知和提醒,則只會顯示通知。如果你想同時顯示,你將不得不使用兩個獨立的'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

謝謝!flash [:notice]正在工作,但我需要實現一個'elseif'方法以使其與警報一起工作。爲什麼'elseif'拋出'undefined method'錯誤?奇怪的! – 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