为什么我得到一个未定义的方法`each'为nil:NilClass?

时间:2013-09-13 21:29:12

标签: ruby nomethoderror

这里有新手。我只是想列出'sites'中的所有对象。我知道这很简单,但我似乎无法追踪它!

错误:

NoMethodError in Home#index

Showing /Users/jasonmurphy/data/projects/moviefeed/app/views/home/index.html.erb where     line #6 raised:

undefined method `each' for nil:NilClass
Extracted source (around line #6):

3: <u>SITES</u>
4: <br>
5: 
6: <% @sites.each do |site| %>
7:  <%= site.name %>
8:  <% end %>

我的'网站'控制器:

class SitesController < ApplicationController
def index
    @sites = Site.all
end

def show
    @site=Site.find(params[:id])
end 
end

我的观点 - Views / home / index.html.erb

<u>SITES</u>
<br>

<% @sites.each do |site| %>
<%= site.name %>
 <% end %>

我的routes.rb

resources :sites
resources :critics
root :to => "home#index"

1 个答案:

答案 0 :(得分:1)

在不知道任何其他信息的情况下 - 看起来它永远不会击中你的网站控制器。我会将你的根线改为:

root :to => 'sites#index'

然后,您必须将视图代码移动到app / view / sites /目录。或者,您可以将控制器代码移动到家庭控制器。