如何在rails输入字段中显示输入字段错误消息

时间:2016-04-29 20:04:58

标签: ruby-on-rails ruby html5

错误消息未仅显示突出显示的字段

 <%= f.text_field :website,:required=>true,:pattern=>'https?://.+' %>

我如何证明这一点?

1 个答案:

答案 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所示的顶部显示一些全局错误。