rails 4中未定义的方法`errors'

时间:2013-08-27 12:21:09

标签: ruby-on-rails undefined

您好我刚开始使用ruby on rails并且正在使用此ref开发小型博客应用程序 http://guides.rubyonrails.org/getting_started.html

我在这里面临以下问题。

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

我是这个环境的初学者。如何解决这个问题呢。需要帮忙。谢谢。

2 个答案:

答案 0 :(得分:10)

在您的控制器中:

def new
  @post = Post.new
end 

并在您的视图中

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

是的,您只需要实例化Post对象....现在在您的情况下,Post未实例化以便抛出错误。您还应该知道,错误被定义为实例方法而不是类方法。因此,它将在特定实例上调用。

您可以使用以下链接找到有关活动模型错误的更多信息:

http://api.rubyonrails.org/classes/ActiveModel/Errors.html

答案 1 :(得分:3)

在您的控制器中:

def new
  @post = Post.new
end

在您看来:

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