我想为每次验证显示一条自定义错误消息,我已经完成了此操作但未完成此操作。
validates :first_name, presence: {message: "No escribistes tu nombre."}
validates :last_name, presence: {message: "No escribistes tu apellido."}
validates :mobile_phone, presence: { message: "No escribistes tu número de teléfono celular."}
validates :mobile_phone, length: { minimum: 10, message: "Número de celular debe contener mas de 10 números." }
除了始终显示在错误消息之前显示之外,这个工作正常:
FIRST NAME NO ESCRIBISTES TU NOMBRE.
LAST NAME NO ESCRIBISTES TU APELLIDO.
MOBILE PHONE NO ESCRIBISTES TU NÚMERO DE TELÉFONO CELULAR.
MOBILE PHONE NÚMERO DE CELULAR DEBE CONTENER MAS DE 10 NÚMEROS.
如何摆脱在自定义错误消息之前编写的第一个FIRST NAME, LAST NAME, MOBILE PHONE, MOBILE PHONE
?
此外,我想知道如何将first_name
的错误消息放在名字字段下?
这就是我目前所拥有的:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<!--<%= devise_error_messages! %>-->
<% if @user.errors.any? %>
<% @user.errors.full_messages.each do |msg| %>
<div class="alert alert-danger"><%= msg %></div>
<% end %>
<% end %>
<div>
<%= f.text_field :first_name, autofocus: true, placeholder: 'Nombre' %>
<%= f.text_field :last_name, placeholder: 'Apellido' %>
</div>
<div class="m-t">
<%= f.telephone_field :mobile_phone, placeholder: '787-878-7878' %>
</div>
<div><%= f.submit "SIGN UP", class: 'custom-input-2 m-t' %></div>
<% end %>
如何摆脱错误列表,只是在其特定字段下显示错误。
谢谢。
答案 0 :(得分:1)
将表单错误块更改为:
<% if @user.errors.any? %>
<% @user.errors.messages.each do |msg| %>
<div class="alert alert-danger"><%= msg %></div>
<% end %>
<% end %>
或强>
在locals / en.yml中更改它:
# config/locales/en.yml
en:
activerecord:
attributes:
user:
email: "E-mail address"
errors:
models:
user:
attributes:
first_name:
blank: "is required"
由于en.yml适用于英语,因此您必须为您的语言创建另一个.yml文件,并且它还可以通过使您的应用程序国际化来帮助您。结帐详情Rails Internationalization
答案 1 :(得分:0)
在Nitin评论之后,我能够进行一些修改,我添加了以下内容:
<div>
<%= raw @user.errors[:first_name].join + (" ")%>
<%= @user.errors[:last_name].join %>
<%= f.text_field :first_name, autofocus: true, placeholder: 'Nombre' %>
<%= f.text_field :last_name, placeholder: 'Apellido' %>
</div>
这将显示特定变量的错误消息。