ruby-on-rails - 如何使用类自定义设计错误消息

标签 ruby-on-rails devise twitter-bootstrap

我正在使用 Twitter Bootstrap 警报消息。在我的 application.html.erb 中我有...

            <% flash.each do |key, value| %>
                <div class="alert alert-<%=key%>">
                    <a class="close" data-dismiss="alert">×</a>
                    <%= value %>
                </div>
           <% end %>

通常当我想做一条即时消息时,我会写类似的内容

flash[:success] = "Profile updated"

但是我不确定如何为设备错误消息提供键和值对。我查看了 devise.en.yml 但似乎无法将消息与 key 关联起来,即:成功、:错误等。 有人可以帮忙吗?谢谢!

最佳答案

对于遇到此问题但不知道如何使用 Bootstrap 覆盖设备错误消息的任何人。

  1. 创建名为:
  2. 的文件

/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

关于ruby-on-rails - 如何使用类自定义设计错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10241517/

相关文章:

ruby-on-rails - 自定义 gem 未加载到 Rails 应用程序中

twitter-bootstrap - 如何使用 Bootstrap 网格布局将右列移动到顶部以适应较小的显示器?

ruby-on-rails - 在 devise_invitable 中覆盖邮件程序?

javascript - 如何更改 Bootstrap 弹出窗口箭头的大小

javascript - 添加点击操作以搜索 Bootstrap

ruby-on-rails - Postgres : Order by string column with known values

javascript - Ruby on Rails 仪表板部分

javascript - 仅在某些操作中启用js功能

ruby - Heroku,设计 : Getting 'NoMethodError (undefined method ` to_key' for :user:Symbol)'

ruby-on-rails - Devise 和 OmniAuth 如何协同工作?