我有新的Rails 2.2安装,事情就是一切正常,直到我使用脚手架生成器。
$ script/generate scaffold pages \
title:string description:string content:text
$ rake db:migrate
但是当我使用这个地址启动服务器时:http://localhost:3000/pages/我得到了这个:
NoMethodError in PagesController#index
undefined method `find' for ActionController::Caching::Pages:Module
app/controllers/pages_controller.rb:5:in 'index'
/Library/Ruby/Gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in 'send'
/Library/Ruby/Gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in 'perform_action_without_filters'
/Library/Ruby/Gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:617:in 'call_filters'
...
我无法得到我做错了什么?是新的Rails特定的东西?
答案 0 :(得分:4)
资源的名称应该是单数。所以试试
script/generate scaffold page title:string description:string content:text
而非页面。
此外,你对脚手架生成器的调用会创建一个与模块ActionController :: Caching :: Pages同名的Pages模型,它可以从你的控制器中获得并且Rails会混淆(因为Pages模块没有find这样的方法)