我正在创建一个 Rails 3 插件,我想在其中集成控制器,rails 将自动将其视为 app/controllers 文件夹中的“普通”控制器。我该如何做到这一点,或者从插件获得自定义控制器的最佳解决方案是什么?
我找到了文档指南.rubyonrails.org http://guides.rubyonrails.org但他们已经更改了文档,并且插件开发不再包含控制器。
Thanks
您需要在插件中定义一个继承自的类Rails::Engine
。实际上,您想要的功能是一个引擎.
像这样定义类:
lib/your_thing/engine.rb
module YourThing
class Engine < Rails::Engine
end
end
然后您可以在以下位置定义引擎的控制器app/controllers
在该插件中,为了让它们正常工作,您还需要为它们定义路由,您可以在内部执行此操作config/routes.rb
发动机内部是这样的:
YourThing::Engine.routes.draw do
resources :things
end
接下来,您需要在应用程序中安装引擎:
mount YourThing::Engine, :at => "/"
然后应用程序将能够使用来自您的引擎的路由。
有关更多信息,我正在编写官方 Rails Engine 指南,该指南你可以参考这里。 http://ryanbigg.com/guides/engines.html如果您还有任何其他问题,请告诉我,我会尽力在指南中回答这些问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)