Head First Rails | Ads#index中的NoMethodError

时间:2014-01-17 14:46:09

标签: ruby-on-rails ruby ruby-on-rails-4

我正在研究Head First Rails Ch2,我使用的是rails 4。 在我输入localhost:3000 / ads后,我收到了如下错误

广告#index中的NOMethodError 显示/Users/changfengTSAI/mebay4/app/views/ads/index.html.erb第3行引发: 未定义的方法`each'代表nil:NilClass

以下是我为此练习所做的事情

1.rails new mebay4

2.rails g model ad name:string description:text price:decimal seller_id:integer email:string img_rul:sting

3.rake db:migrate

4.rails g控制器广告

5.ads_controller.rb

def show
  @ad = Ad.find(params[:id])
end
def index
  @ad = Ad.find(:all)
end

6.routes.rb

get 'ads/' => 'ads#index'
get 'ads/:id' => 'ads#show'

7.index.html.erb

<h1>All ads</h1>
<ul>
  <% for ad in @ads %>
  <li><a href ="/ads/<%= ad.id %>"><%= ad.name %></a></li>
  <% end %>
</ul>

我想知道如何解决这个问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

def index
  @ads = Ad.find(:all)
end

变量命名错误。