2013-09-01 2 views
2

나는 Getting started with Rails tutorial를하고있어 내가 쉘에서 로컬 서버를 실행할 때 내가 얻을이 :NoMethodError # 새로운

1: <%= form_for @post do |f| %> 
2: <% if @post.errors.any? %> 
3: <div id="errorExplanation"> 
4:  <h2><%= pluralize(@post.errors.count, "error") %> prohibited 
: (1 호선 주변) 추출 된 소스

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

방금 ​​Ruby on Rails를 시작했고 무슨 일이 일어나고 있는지 알 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

3

오류 메시지, 당신은 당신이 nil 객체 대신에 당신이 기대하는 실제 개체를 포함하는 몇 가지 변수가 수단을보고있다.

오류 메시지가 명시 적으로 참조하지 않지만

, 그것은 가능성이 @post 변수는 무기 호입니다.

왜 그렇지 않습니까? 여기에 코드가 주어지면 말하기가 거의 불가능합니다. PostsController#new 조치도 게시하십시오.

+0

감사합니다, 좋은 행운을 당신의 대답. 나는 모든 직원을두면 더 낫다고 생각합니다. – Hell0

+0

감사합니다. 나는 다른 모든 '질문'에 모든 것을 넣으면 더 좋을 것이라고 생각합니다. 나는 설명서를 다시 읽고 있는데, 내가 알지 못하는 몇 가지 다른 기능을 발견했다. 'Rails 4.0에서만 실행되는 활성 모델? ', holly b. 어쨌든 고마워. – Hell0

+0

그 말이 맞지 않습니다; 나는'ActiveModel'이 3.x 시리즈 이후로 Rails의 일부가되었다는 것을 확신합니다. –

2

수정은 posts_controller.rb에 다음 코드를 추가입니다

데프 새로운 @post = Post.new

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

class PostsController < ApplicationController 

def new 
@post = Post.new 
end