如何使用类自定义设计错误消息

Sas*_*sha 9 ruby-on-rails devise twitter-bootstrap

即时通讯使用twitters bootstrap警报消息.在我的application.html.erb我有......

            <% flash.each do |key, value| %>
                <div class="alert alert-<%=key%>">
                    <a class="close" data-dismiss="alert">×</a>
                    <%= value %>
                </div>
           <% end %>
Run Code Online (Sandbox Code Playgroud)

通常当我想做一个flash消息时,我会写一些类似的东西

flash[:success] = "Profile updated"
Run Code Online (Sandbox Code Playgroud)

但我不知道如何给设计错误消息一个键和值对.我查看了devise.en.yml,但似乎无法将消息与密钥相关联,即:成功,:错误等可能有人帮忙吗?谢谢!

Fra*_*ois 37

对于遇到这种情况的人来说,不知道如何使用bootstrap覆盖设计错误消息.

  1. 创建名为的文件:

/app/helpers/devise_helper.rb

  1. 添加以下代码:
module DeviseHelper
 def devise_error_messages!
  return '' if resource.errors.empty?

   messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
   sentence = I18n.t('errors.messages.not_saved',
   count: resource.errors.count,
   resource: resource.class.model_name.human.downcase)

   html = <<-HTML
   <div class="alert alert-error alert-block"> <button type="button"
    class="close" data-dismiss="alert">x</button>
    <h4>#{sentence}</h4>
    #{messages}
   </div>
   HTML

   html.html_safe
 end
end
Run Code Online (Sandbox Code Playgroud)

  • 请注意,根据您使用的Bootstrap版本,您可能必须使用alert-danger而不是alert-error.因此,如果您逐字尝试弗朗索瓦的建议并获得白色背景而不是粉红色/红色,那可能就是原因. (7认同)

ahm*_*met 8

我就是这样做的

<% flash.each do |key, value| %>
<div class="message">
   <div class="alert-message <%= key %> fade in">
    <a class="close" href="#">&times</a>
    <center><strong><%= value %></strong></center>
  </div>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)