【发布时间】:2014-02-25 22:16:28
【问题描述】:
我有以下代码来显示错误消息:
<% if @profile.errors.any? %>
<% puts @profile.errors.full_messages.inspect.to_s %>
<ul>
<% @profile.errors.full_messages.each do |msg| %>
<% puts 'errors ared' + msg.to_s %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
这是模型中的验证:
validates :title, presence: true, length: {maximum: 50, minimum: 5, too_long: "Title cannot be longer than %{count} characters", too_short:" must be at least %{count} characters."}
由于某种原因,这会同时打印带有错误的属性名称和错误。例如,如果我试图显示更新名为“title”的表单字段的错误,错误消息将显示为:
Title Title cannot be longer than 50 characters
我有许多错误消息要在我的网站上显示,并且我不希望自动编写任何内容。怎么去掉开头的“Title”二字?
【问题讨论】:
-
从
too_long: "Title cannot be longer...中删除“标题”?似乎它会自动添加它。 -
是的,这将解决这个问题,但这只是一个例子。我想知道如何解决将属性附加到错误消息的rails问题。
-
似乎在 Rails 3 中使用语言环境自定义错误消息:stackoverflow.com/questions/808547/… 我不知道 Rails 4 中是否有更好的方法。
-
@Philip7899 我为您的代码编写了一个自定义实现。请在编辑部分查看我的更新答案
标签: ruby-on-rails ruby validation ruby-on-rails-4