错误消息未仅显示突出显示的字段
<%= f.text_field :website,:required=>true,:pattern=>'https?://.+' %>
我如何证明这一点?
答案 0 :(得分:1)
选项1(推荐):使用simple_form
gem。它可以轻松显示字段旁边的错误消息。
安装gem之后,您可以简单地执行此操作:
<%= f.input :website %>
选项2:自己编码。像下面这样的东西将是一个开始。您可能希望为样式添加一些CSS类,并决定在该字段上存在多个错误时该怎么做。
<%= form_for @model do |f| %>
<%= f.text_field :website %>
<%= @model.errors.full_messages_for(:website).join(', ') if @model.errors.has_key?(:website) %>
<% end %>
如果@model
没有与website
字段关联的验证错误,则上述操作无效。这通常不是Rails内置验证的问题。即,如果你做validates_presence_of :website
之类的事情 - 你很好。但是,如果您有自定义验证,请务必在调用website
时在errors.add
字段中添加错误,例如:
def some_custom_validator
errors.add(:website, 'Something is wrong') if some_logic
end
如果您的Rails或自定义验证在:base
上添加了错误errors.add(:base, 'some global issue')
,您可能还希望在here所示的顶部显示一些全局错误。