2012-10-04 34 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; 
} 
相关问题