2013-07-19 6 views
2

난 레일을 처음 사용하고 다음은 http://guides.rubyonrails.org/getting_started.html입니다. 나는 로컬 호스트에서 내 블로그의 모든 게시물을 나열해야 섹션 5.8에 현재 해요 : 3000/글, 대신 메시지는 무엇입니까 :NoMethodError in Posts # 인덱스, 정의되지 않은 메소드 'each'for nil : NilClass

class PostsController < ApplicationController 
def index 
    @post = Post.all 
end 

def new 
end 

def create 
    @post = Post.new(params[:post].permit(:title, :text)) 

    @post.save 
    redirect_to @post 
end 

def show 
    @post = Post.find(params[:id]) 
end 

private 
    def post_params 
     params.require(:post).permit(:title, :text) 
    end 

:

여기
NoMethodError in Posts#index 
Showing /Users/sw/Code/blog/app/views/posts/index.html.erb where line #9 raised: 
undefined method `each' for nil:NilClass 
Extracted source (around line #9): 

    <% @posts.each do |post| %> 
     <tr> 
      <td><%= post.title %></td> 
      <td><%= post.text %></td> 

내 posts_controller.rb의를

<table> 
<tr> 
    <th>Title</th> 
    <th>Text</th> 
</tr> 

<% @posts.each do |post| %> 
    <tr> 
     <td><%= post.title %></td> 
     <td><%= post.text %></td> 
    </tr> 
<% end %> 

: 여기

그리고 끝 나의 index.html.erb입니다

나는 모든 것을 조사해 왔으며 답을 찾을 수 없었습니다!

+1

def index @post = Post.all end 

을 대체 !!!! –

답변

4

변수 @posts을 반복하고 있지만 색인에서 변수 @post을 할당하고 있습니다.

따라서, 귀하의 posts_controller.rb에 오타입니다

def index 
    @posts = Post.all 
end 
관련 문제