最近我搭建了两个模型/控制器/视图,我们称它们为xxx和yyy。现在我在控制器文件下查看,我什么也没看到!但是它还在工作,经过调查我发现这是由于
inherited_resources宝石
控制器现在是这样的
class xxx < InheritedResources::Base
end
所以如果我改变
InheritedResources::Base to ApplicationController
如果我有其他控制器,它会像普通控制器一样吗?我试着查找文档,我被推荐到这里来问问题。
让这两个支架恢复正常控制器/模型的最佳方法是什么?
谢谢你的时间和帮助。
in config/application.rb
add:
#use rails scaffolding generator
config.app_generators.scaffold_controller = :scaffold_controller
当您使用InheritedResources
时,gem会注册一个控制器生成器来生成您的控制器定义。使用InheritedResources::Base
的目的是清理控制器并将所有七个REST动作移动到一个公共类中。如果扩展InheritedResources::Base
index
new
create
edit
update
show
destroy
它们都是为你定义的。继续做一个测试,脚手架一个资源,去它的index方法,添加一些记录,玩…
现在,如果你真的想回到以前的方式,让你的代码由绑定的控制器生成器生成,从你的Gemfile中删除inherited_resources
, bundle install
,并再次生成你的支架。
希望能有所帮助(:
注:如果您决定使用InheritedResources
(我建议您这样做),您可以覆盖您想要自定义的任何方法。看一下文档,那边的一切都更清楚。