如何从继承的资源宝石中退回

时间:2013-03-13 02:38:39

标签: ruby-on-rails ruby ruby-on-rails-3

最近我在我的两个模型/控制器/视图中使用脚手架,让我们称之为xxx和yyy。现在我看一下控制器文件,我什么都看不见!但它仍在运作,经过调查我发现这是由于

inherited_resources Gem

所以控制器现在看起来像这样

class xxx < InheritedResources::Base
end

所以,如果我改变

InheritedResources::Base to ApplicationController 
像我有其他控制器一样,它会像普通控制器一样吗?我试着查看文档,我在这里提到了问题。

为这两个脚手架恢复正常控制器/模型的最佳方法是什么?

感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:4)

config/application.rb中添加:

#use rails scaffolding generator
config.app_generators.scaffold_controller = :scaffold_controller

答案 1 :(得分:0)

当你使用InheritedResources时,gem注册一个控制器生成器,它只生成你的控制器定义。使用InheritedResources::Base的目的是清理控制器并将所有七个REST操作移动到一个公共类。如果扩展InheritedResources::Base

,则无需定义以下任何方法
index
new
create
edit
update
show
destroy

他们都是为你定义的。继续做一个测试,脚手架资源并转到它的索引方法,添加一些记录,玩转......

现在,如果你真的想回到原来的方式并让捆绑的控制器生成器生成代码,请从你的Gemfile inherited_resources中删除bundle install,然后再次生成你的脚手架。

希望它有所帮助(:

P.S。如果您决定使用InheritedResources(我建议您这样做),您可以覆盖您想要自定义的任何方法。有一个look at the docs,那里的一切都更清晰。