帖子#new中的NoMethodError

时间:2013-09-01 11:13:54

标签: ruby-on-rails-3.1

我正在进行Getting started with Rails tutorial,当我从shell运行本地服务器时,我得到了这个:

`NoMethodError in Posts#new` `/_form.html.erb where line #1 raised:
`undefined method `model_name' for NilClass:Class

这是提取的来源(第1行):

1: <%= form_for @post do |f| %>
2:  <% if @post.errors.any? %>
3:  <div id="errorExplanation">
4:      <h2><%= pluralize(@post.errors.count, "error") %> prohibited

我刚开始使用Ruby on Rails,我无法弄清楚发生了什么。我做错了什么?

3 个答案:

答案 0 :(得分:3)

错误消息,您看到的意思是您有一些包含nil对象的变量而不是您期望的实际对象。

虽然错误消息未明确引用此内容,但您的@post变量可能为零。

为什么没有?考虑到这里的代码,这几乎是不可能的。请同时发布您的PostsController#new广告。

答案 1 :(得分:2)

修复进入 posts_controller.rb ,添加下一个代码

def new    @post = Post.new

祝你好运

答案 2 :(得分:1)

// Make sure to use model declaration inside your method to check the error logs

class PostsController < ApplicationController

def new
@post = Post.new
end