ruby-on-rails - 如何在 Rails 中添加插件?

标签 ruby-on-rails ruby-on-rails-3 plugins

我不确定我是否可以问这个问题,但我肯定需要一个答案。我正在开发一个 Rails 项目 - 一个论坛 - 我想知道如何在其中实现“插件”。

基本上,我希望对编程或 ruby​​ on rails 不太了解的人能够向我的论坛添加功能(假设他们将我的论坛克隆到他们的服务器上)。一般的想法是

  • 插件会有自己的目录,比如 plugins , 并将在此目录中由插件名称分隔。
  • 我将能够运行像 rake forum:plugins:install some-url 这样的命令这将为他们下载并安装插件
  • 插件将能够修改/添加 Assets ,以及更改 View 、 Controller 或模型
  • 插件不改变实际论坛的代码

  • 开始这个项目时,我的脑海里有一个想法,我可以只应用一两个补丁来安装插件,但是当用户必须升级论坛时,这会很糟糕。

    所以,我的问题是:
  • 如何实现我的插件,如上所述?
  • 使用 rails 执行此操作是个好主意吗?

  • 同样,我不确定这些问题是否被允许,但我想我会知道的。

    澄清一下,我正在寻找一个类似于 SMF 包功能的系统(它允许您在论坛软件本身上导入和安装插件/包)。我不是在寻找 rails 本身的插件,而是在 rails 上运行的应用程序(论坛)。

    TL;博士 :我正在寻找一种无需修改源代码即可修改 rails 应用程序的方法。我不是在寻找 rails 2 插件或 ruby​​gems。

    最佳答案

    在 Rails 中,大多数插件通常实现为 gems .

    从上面的链接:

    A gem is a packaged Ruby application or library. It has a name (e.g. rake) and a version (e.g. 0.4.16).



    我会这样做。 Gems 是迄今为止创建希望存在于多个应用程序中的功能的最常见方式。

    另外:How to make your own gem

    关于ruby-on-rails - 如何在 Rails 中添加插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396538/

    相关文章:

    multithreading - NPAPI插件的浏览器主线程

    Maven 阶段执行两次

    ruby-on-rails - 迁移次要 Rails 版本

    ruby-on-rails - 我应该如何安排我的模型和 cron rake 任务以按不同的开始日期间隔发送电子邮件?

    ruby-on-rails - ruby 1.8 到 1.9 ruby​​ -v 显示 ruby​​ 1.9.2p0

    ruby-on-rails - 你如何使 rake db :schema:dump have the charset and collation of the fields in schema. rb?

    model - 如何在 Rails 中建模 "appointments"?

    ruby-on-rails - rake 数据库 :create:all FATAL : password authentication failed

    javascript - 为 babel 6 写一个语法插件

    ruby-on-rails - 基本表单操作不适用于 heroku(但在本地有效)