2012-10-04 55 views
0

我需要將所有閃存通知放在標題下方,除了一頁以外。如何更改Flash [:notice]只在Rails中的一個頁面上放置?

只在一頁上我應該以不同的方式放置它。

編輯

我在阿克頓,在這裏我想用另外的佈局該行補充說:

render :layout => 'show' 

而現在,當我要告訴頁面它給了我:

undefined method `url' for nil:NilClass 

但沒有渲染此佈局 - 沒有錯誤。

編輯

是否有可能在Rails的?

+1

使用的佈局。例如,一個佈局是主要的,那裏你渲染你的閃光燈,第二個是你的不同的佈局與特定的閃光渲染 –

+0

@Denis,приветтёзка)當我創建'show'佈局奇怪的錯誤開始提升。 – skrypalyk

+0

什麼樣的錯誤?發佈他們將有所幫助。 – maru

回答

2

關閉我的頭頂,你可以檢查視圖中的當前控制器#動作,看看我們的Flash消息是否需要移動。

的Rails通過這些PARAMS到每個視圖(例如:如果我們在UsersControllershow動作):

params[:controller] #=> users 
params[:action]  #=> show 

我們可以添加一個助手,以簡化在視圖中我們的條件:

# file: app/helpers/application_helper.rb 
def move_flash_messages? 
    params[:controller] == "users" && params[:action] == "show" 
end 

然後做簡單的檢查,我們的佈局:

# file: app/views/layouts/application.html.haml 
- unless move_flash_messages? 
    = flash_messages 
... 
- if move_flash_messages? 
    = flash_messages 
+1

非常感謝! – skrypalyk

0

這是很容易顯示提示信息的任何地方

<% flash.each do |name, msg| %> 
    <%= content_tag :div, msg, class: "flash notice" , id:"flash_notice" %> 
    <% end %> 

這裏是CSS的閃光消息

div.flash.notice { 
    background: url(../images/true.png) 8px 5px no-repeat; 
    background-color: #dfffdf; 
    border-color: #9fcf9f; 
    color: #005f00; 
} 
相關問題