Rails 2.1+中的脚手架生成器问题

时间:2008-11-24 08:41:29

标签: ruby-on-rails

我有新的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特定的东西?

1 个答案:

答案 0 :(得分:4)

资源的名称应该是单数。所以试试

script/generate scaffold page title:string description:string content:text

而非页面

此外,你对脚手架生成器的调用会创建一个与模块ActionController :: Caching :: Pages同名的Pages模型,它可以从你的控制器中获得并且Rails会混淆(因为Pages模块没有find这样的方法)