1

我的错误消息没有自动显示,所以我决定使用flash作为解决方法。这就是我正在做的

控制器:

flash[:notice] = @post.errors.full_messages

看法:

<%= flash[:notice] %>

然后,我看到这个丑陋的错误消息。

["Content can't be blank", "Content is too short (minimum is 10 characters)"] 

但至少,用户成功地得到了错误信息。现在我需要自定义错误消息,让它看起来更漂亮一点。我想我可以将每个错误语句解析为一些局部变量并显示它们(有没有更复杂的方法?)。但是,我不知道如何自定义错误消息。例如,“内容不能为空”应更改为“您将内容留空”。我在哪里可以解决这个问题?

4

1 回答 1

1

发生的情况是,当 @post 包含一些验证错误时,会@post.errors.full_messages返回一组在验证期间发生的错误。

为了很好地展示它们,你可能想要做类似的事情

<%- flash[:notice].each do |error| %>
  <%= error %>
<% end %>

编辑 哎呀,我误读了这个问题。

这些错误是模型中的验证错误,您可以在其中进行验证,例如

validates你可以像这样传递自定义消息

validates :content, :presence => { :message => "You left the content blank" }

更新:查看此链接以获取您拥有的选项

http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates

于 2012-11-22T02:16:09.513 回答