你如何编辑Devise错误消息?

时间:2013-02-28 00:33:59

标签: ruby-on-rails-3 css3 devise

要清楚,我知道如何编辑config / locales / devise.en.yml中的错误消息,但我指的是设置这些类型的错误消息:

2 errors prohibited this user from being saved:
  • 电子邮件不能为空
  • 密码不能为空

-

我看到的只是<%= devise_error_messages! %GT;在注册页面上,但我不知道如何实际编辑错误消息本身。

在我的情况下,消息显示在左侧,我的注册是居中的(看起来很奇怪),我也不喜欢消息的红色,并且更喜欢不同的颜色。

所以我的问题是,如何设置错误消息的样式?使它居中,并改变颜色。

不确定要包含哪些其他控制器或内容,一旦你提出要求,我会在需要时用它们更新OP。

1 个答案:

答案 0 :(得分:8)

查看devise_error_messages的来源!方法https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb

所有错误都在

之内
<div id="error_explanation"> 

所以你可以在你的CSS中使用这个事实。其中仅使用基本样式:h2表示标题消息,ul表示个别错误。有关#errorExplanation样式的信息,请参阅此示例,例如:how to beautify validations in rails。只是不要忘记在示例中用#error_explanation替换#errorExplanation。

但是你最好的方法可能仍然是重写这个方法或编写并使用你自己的方法,并且应用你喜欢的所有样式。

我个人建议在他们所属的字段旁边显示错误。例如,请参阅此SO线程,了解如何执行此操作:Rails: Errors close to particular fields in forms

另一项改进是为您的表单切换到simple_form(并且免费获取错误 - next-to-fields)。例如,参见一个优秀的Railscast:http://railscasts.com/episodes/234-simple-form。有一个更新的Railscast,但不确定你是否是Pro用户。