帮助方法改变警报的颜色

时间:2013-10-17 18:45:43

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我写了这个小助手方法:

def alert_color(name)
    if name == 'notice'
        return 'alert alert-dismissable alert-success'
    end
end

在我的应用程序布局中,我写道:

<% flash.each do |name, msg| %>
    <div class=<%= alert_color(name) %>>
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong><%= name %></strong><%= msg %>
    </div>
<% end %> 

我的第一个问题是它不知何故无法正常工作,因为名称未正确传递给helper_method!

第二个问题是我尝试过:

alert_color('notice')

它返回了这个:

<div class="alert" alert-success="" alert-dismissable="">

我真的不知道如何改变这种行为!

而且,我正在以这种方式制作flash消息:

notice: 'User was successfully updated.'

2 个答案:

答案 0 :(得分:2)

<div class="<%= alert_color(name) %>">

此外,您还需要在帮助程序中编写“成功”以外的其他案例。

def alert_color(name)
  color = name == 'notice' ? 'success' : 'alert'
  "alert alert-dismissable alert-#{color}"
end

答案 1 :(得分:0)

尝试插值

class="#{alert_color(name)}"