Rails 3.0弃用了f.error_messages,现在需要一个插件才能正常工作——不过我想学习如何以(新的)原生方式显示错误消息.我遵循的是getting started guide,它在实现注释表单时使用了不推荐的方法.例如:

<h2>Add a comment:</h2>
<%= form_for([@post, @post.comments.build]) do |f| %>
  <%= f.error_messages %>
<div class="field">
  <% f.label :commenter  %><br />
  <%= f.text_field :commenter  %>
</div>
<div class="field">
  <%= f.label :body %><br />
  <%= f.text_area :body %>
</div>
<div class="actions">
  <%= f.submit %>
</div>
<% end %>

以下是正确的方法(由脚手架生成):

<%= form_for(@post) do |f| %>
  <% if @post.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>

      <ul>
      <% @post.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
 . . . 

我知道我在后一个例子中使用了@post变量,但在前一个例子中,我应该引用哪个变量来获取用于创建注释的错误消息?

推荐答案

我刚刚研究了docrails github的问题,他们决定删除f.error_消息,而不是解释如何对注释进行验证.

Ruby-on-rails相关问答推荐

使用RubyZip处理大型压缩文件:65535个文件的限制

Ubuntu Webhooks无法读取安装的正确RVM Ruby

根据表单内的 Select 字段值渲染部分内容

has_many 通过大小验证

如何在 Rails 中声明动态路由范围/命名空间变量?

Heroku 应用程序上的远程 mysql 数据库

Rails:用于创建固定长度 char(12) 列的迁移

禁用冻结字符串文字注释判断

有没有办法在模型而不是视图中使用复数()?

回形针图片网址

默认情况下,如何在 Rails 中使 cookie 安全(仅限 https)?

Rails:文件路径

在 ID 存在时获取表的未知主键

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

如何对这个哈希数组进行分组?

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

如何使用 Rails 3 获取请求的目标控制器和操作?

rails respond_to format.js API

Rails,Docker:主机不存在:默认

让 bundler 为不同的平台使用不同的 gem