我正在使用simple_form gem。我想自定义用户验证失败时显示的错误消息。我怎样才能做到这一点?使用simple_form自定义错误消息
回答
您可以轻松地更改翻译文件中的默认错误消息,该文件位于config/locales/simple_form.en.yml
中。
在特定的初始化程序config/initializers/simple_form.rb
中,您可以否决如何生成html的默认选项。
希望这会有所帮助。
为了完整,我想补充一点,formtastic是一个更容易的选择,因为它有一个默认布局。我很喜欢simple_form,但它并不提供任何格式,但这是他们的意图。使用Formtastic很难(不可能)更改生成的html,并且使用simple_form可以完全根据自己的喜好生成生成的html。如果你有一个设计者,这是特别有用的,你生成的表格必须生成相同的html。所以如果你开始了,formtastic会更快地给你看起来更漂亮的结果。还要注意,切换非常容易,因为语法几乎完全相同。
更改'simple_form.en.yml'中的默认错误消息的语法是什么?如果你有两个验证属性,如':presence => true'和':format => ...'?你将如何为每个消息提供不同的消息? – 2011-04-27 20:28:50
标准验证消息与simple_form无关,但是标准的ActiveRecord。您可以在验证中明确声明消息,也可以检查标准消息的定义(以及如何覆盖它们)的https://github.com/svenfuchs/rails-i18n。 – nathanvda 2011-04-27 21:14:19
有没有办法配置simple_form将标签和错误消息链接到默认的activerecord i18n yaml? – Matthias 2016-04-02 11:23:31
你可以声明 错误消息的内容在你的模型:
validates_length_of :name, :minimum => 5, :message => "blah blah blah"
可以设置
id
或class
您 错误标签:<%= f.input :name, :error_html => { :id => "name_error"} %>
然后你可以使用CSS进行造型。
你也可以使用
<%= f.error :name, :id => "name_error" %>
,你会得到
<span class="error" id="name_error">is too short (minimum is 5 characters)</span>
我不知道它是simple_form宝石有什么不同。
有关要更改错误消息的内容,可以使用模型中的:message
属性。
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
end
现在验证信息将是Email is not filled up
。如果你想要的字段名称也将被改变(Email
到E-mail address
类似的东西),这种方法现在在locales.rb
文件来定义它像这样
# config/locales/en.yml
en:
activerecord:
attributes:
user:
email: "E-mail address"
见link关于locales
细节。另一种方法是在模型中定义,人性化的属性是这样的:
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
HUMANIZED_ATTRIBUTES = {
:email => "E-mail address",
...(other fields and their humanized names)
...
}
def self.human_attribute_name(attr, options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
有关自定义验证消息的风格,我们将不得不修改样式 #errorExplanation
和.fieldWithErrors
,在scaffold.css
样式表。
- 1. 使用自定义authlogic错误消息
- 2. 自定义错误消息
- 3. 用自定义消息替换错误
- 4. simple_form错误消息不会消失
- 5. python argparse - 自定义错误消息
- 6. Ghost:自定义错误消息
- 7. JWPLAYER自定义错误消息
- 8. Vaadin自定义错误消息
- 9. Python Click:自定义错误消息
- 10. Zend_Form自定义错误消息
- 11. 自定义Spring错误消息
- 12. has_secure_password自定义错误消息
- 13. Grails域的自定义错误消息
- 14. kohana自定义验证错误消息
- 15. asp.NET - 自定义错误消息
- 16. WF ThrowActivities和自定义错误消息?
- 17. 自定义JAXB验证错误消息
- 18. jQuery验证自定义错误消息
- 19. 自定义错误消息8
- 20. Struts2自定义错误消息
- 21. 如何自定义错误消息
- 22. 自定义authlogic错误消息
- 23. Rails 4.2 ActionController:BadRequest自定义错误消息
- 24. 自定义NSFormatter和错误消息
- 25. 自定义关联错误消息
- 26. 设计,自定义错误消息?
- 27. 自定义错误消息和Laravel 5.1
- 28. Php Mysqli自定义错误消息
- 29. jqgrid中的自定义错误消息
- 30. 自定义repl/nrepl错误消息
是否要自定义错误消息或错误消息的风格disolayed? – rubyprince 2011-04-27 18:34:16
我最初的意思是错误信息的内容,但我也有兴趣定制风格。对不起,不清楚。 – 2011-04-27 18:47:07