【问题标题】:Best way to extend Rails 3.2扩展 Rails 3.2 的最佳方式
【发布时间】:2012-05-29 05:45:48
【问题描述】:

我有我的自定义控制器、模型、一堆视图、帮助程序和其他东西,它们封装了足以满足我工作涉及的 Rails 应用程序的特定数量的用户管理功能。

我想要的是创建某种扩展,以便能够将我所有的自定义内容快速添加到新的 Rails 应用程序中。我对 Ruby on Rails 很陌生,但我知道最后有三种方法可以扩展 Rails - 使用 gems、生成插件或 Railtie。问题是 - 在我的情况下最好的方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby gem ruby-c-extension


    【解决方案1】:

    Rails 应用程序模板似乎是适合您的方式。

    只需创建一个 Rails 项目,它将作为您其他项目的基础,然后,当您创建一个新的 Rails 应用程序时,

    $ rails new myapp -m /path/to/your/template/project
    

    这将自动将您的 Rakefile 和 config.ru 中的应用程序名称替换为新应用程序的名称。 Railties 和其他东西也可以进入这个项目。

    【讨论】:

      【解决方案2】:

      使用 gem,它可以选择使用 Railties 挂钩到 Rails。插件已弃用,will be removed in Rails 4.0

      【讨论】:

        【解决方案3】:

        在这种情况下更好的扩展是使用Rails Engine。您也可以基于此引擎创建 gem,然后插入其他 rails 应用程序。

        基本上,Rails Engine 允许您将部分功能共享给其他应用程序。例如,博客引擎、https://github.com/radar/forem 的论坛、https://github.com/plataformatec/devise 的身份验证引擎或用户管理(在您的情况下)。

        请参阅文档或 railscasts 剧集了解更多信息。 http://railscasts.com/episodes/149-rails-engines

        【讨论】:

          猜你喜欢
          • 2016-04-03
          • 2016-01-26
          • 2011-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-05
          • 2018-10-05
          • 1970-01-01
          相关资源
          最近更新 更多