2013-07-19 29 views
2

我是新來的rails和跟隨http://guides.rubyonrails.org/getting_started.html。我目前在5.8節應列出我的博客所有的職位位於localhost:3000 /職位,但我不是得到一個消息:在帖子中的NoMethodError#索引,未定義的方法`each'爲零:NilClass

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:

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 

結束

這是我的index.html.erb:

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

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

我一直在尋找所有,一直沒能找到答案!

+1

這是一個錯字代替

def index @post = Post.all end 

!!!! –

回答

4

您正在循環變量@posts,但在您的索引中,您正在分配變量@post

因此,在你的posts_controller.rb

def index 
    @posts = Post.all 
end 
相關問題