ruby-on-rails-3 - 来自插件的 Rails 3 Controller

标签 ruby-on-rails-3 plugins controllers

我正在创建一个 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/

相关文章:

ruby-on-rails - 如何将参数从 Controller 传递到 Ruby on Rails 中的模型方法?

ruby-on-rails - 使用参数从另一个 Controller 渲染 View

grails - Grails Controller 和服务中的线程池

ruby-on-rails - Rails3 使用 Iframe 进行 ajax 上传

ruby - RefineryCMS 安装问题

ruby-on-rails - 仅当另一个字段为空时才验证字段是否存在 - Rails

ruby-on-rails - 限制作为可标记行为的标签数量

Eclipse UML 工具

ruby-on-rails - ActiveRecord/PostgreSQL 中具有指定重复周期 + 终止日期的重复记录

qt - 在 Qt 中卸载插件