我正在创建一个 Rails 3 插件,我想在其中集成 Controller ,rails 会自动将这些 Controller 视为 app/controllers 文件夹中的“普通” Controller 。我该怎么做,或者从插件中获得自定义 Controller 的最佳解决方案是什么?
我找到了来自 guides.rubyonrails.org 的文档但他们更改了文档,插件开发不再包含 Controller 。
谢谢
最佳答案
你需要在你的插件中定义一个继承自 Rails::Engine
的类。 .实际上,您想要的功能是引擎。
像这样定义类:
lib/your_thing/engine.rb
module YourThing
class Engine < Rails::Engine
end
end
然后,您可以在
app/controllers
定义引擎的 Controller 。在该插件中,为了让它们整齐地工作,您还需要为它们定义路由,您可以在 config/routes.rb
中执行此操作。发动机内部是这样的:YourThing::Engine.routes.draw do
resources :things
end
接下来,您需要在应用程序中安装引擎:
mount YourThing::Engine, :at => "/"
然后,应用程序将能够使用来自引擎的路由。
有关更多信息,我正在编写官方 Rails 引擎指南,其中 you can reference here.如果您有任何其他问题,请告诉我,我会尽量在指南中回答。
关于ruby-on-rails-3 - 来自插件的 Rails 3 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926115/