我在努力理解我是如何做到这一点的.有人能给我提供建议或给我指出正确的方向吗?

我目前所做的(如下面的代码片段所示)允许我一次显示每个字段中的一个错误.这不完全是我想做的.

我想一次显示一条错误信息.例如,"first name不能为空",然后在解决该错误后,应显示错误数组中的下一个错误.这种情况应该一直发生,直到所有错误都得到解决.

<% @user.errors.each do |attr, msg| %>
<%= "#{attr} #{msg}" if @user.errors[attr].first == msg %> 
<% end %>

推荐答案

经过几个小时的实验,我终于明白了.

<% if @user.errors.full_messages.any? %>
  <% @user.errors.full_messages.each do |error_message| %>
    <%= error_message if @user.errors.full_messages.first == error_message %> <br />
  <% end %>
<% end %>

更好的是:

<%= @user.errors.full_messages.first if @user.errors.any? %>

Ruby-on-rails相关问答推荐

如何控制或定制S为模型使用的命名路由Rail()?

引用连接 Rails 表中枚举的查询

用变量替换 find_or_create_by 中的键

Rails 使用多个外键创建/构建

ActiveRecord 包括.指定包含的列

在 Rails 的 ActiveRecord 中,touch 有什么用?

在 Epoch 中将 Ruby 时间戳转换为秒数并返回

URL中的Rails点而不是斜杠

适合mysql比较的Ruby datetime

如何在 Rails 应用程序中使用长 id?

什么是Ruby 用于 BESIDES 轨道?

如何将变量传递给render_to_string?

通过字符串获取 ActiveRecord 对象的属性

您将 Rack 中间件文件和要求放在哪里?

Ruby on Rails i18n - 想要在模型中翻译自定义消息

Ruby on Rails:如何在 select_tag 中使用默认占位符?

Ruby 1.9.2 和 Rails 3 无法打开 rails 控制台

如何为 Rails 迁移定义布尔字段

Rails:如何将日期时间字符串解析为特定时区

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?