如何应用自定义的Bootstrap消息错误来设计?

时间:2013-11-24 05:45:26

标签: css ruby-on-rails twitter-bootstrap devise

我正在将Bootstrap3错误样式应用于我的Rails4应用中的所有邮件,此处(source

def bootstrap_class_for flash_type
    { success: "alert-success", error: "alert-error", alert: "alert-warning", notice: "alert-info" }[flash_type] || flash_type.to_s
  end

  def flash_messages(opts = {})
    capture do
      flash.each do |msg_type, message|
        concat(content_tag(:div, message, class: "alert #{bootstrap_class_for(msg_type)} fade in") do 
          concat content_tag(:button, 'x', class: "close", data: { dismiss: 'alert' })
          concat message 
        end)
      end
      nil
    end
  end

同时我尝试将相同的样式应用于设计错误消息,但它不起作用。 例如;在[views / devise / registration / new]中,您会看到<%= devise_error_messages! %>,它显示没有样式的错误消息。

我如何应用Bootstrap样式(上面)来设计错误消息?

1 个答案:

答案 0 :(得分:2)

覆盖devise_error_messages!辅助方法

应用程序/助手/ devise_helper.rb

module DeviseHelper
 def devise_error_messages!
   return "" if resource.errors.empty?
   messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
   html = <<-HTML
     <div class="alert alert-error alert-block">
       #{messages}
     </div>
    HTML
  html.html_safe
end

如果设备没有使用任何css类,那么我们使用alert-error类代替您可以使用自定义类

<div class="alert #{boostrap_class_for(:error)} alert-block">