【问题标题】:Build an extensible and modular Rails application with pluggable modules, configuration and views使用可插入模块、配置和视图构建可扩展的模块化 Rails 应用程序
【发布时间】:2014-02-09 01:47:06
【问题描述】:

我想创建一个具有基本结构的应用程序:一堆控制器、模型、视图、语言环境、配置等。该应用程序位于我服务器的特定路径中(称为:PATH1)。

我希望其他同事能够在不修改原始文件的情况下扩展/覆盖这些文件。他们可能想要自定义视图或向现有模型添加字段,甚至向现有控制器添加方法。 他们应该工作并将他们的文件放在专用目录中的同一台服务器中(称为:PATH2)

主要是他们无法访问原始代码库,只能扩展它。

最终的应用程序照常运行,从 PATH1 和 PATH2 加载所有文件。 我已经阅读了 Rails Engines,我想知道我是否可以使用它们来实现这个结果。

有人对此类基础设施有经验吗?

非常感谢;)

【问题讨论】:

  • 我只能通过建议使用 API 来做出贡献,但除此之外,我需要看看如何做到这一点!我可以问一下您为什么要以这种方式构建它吗?
  • 有很多员工(前端开发人员、设计师等)无法读取/复制他们使用的应用程序的底层框架。他们的目标是创建多个具有不同特性的 Rails 应用程序(为不同的客户端运行)(它们创建自定义视图、添加字段等)。与 RefineryCMS 类似的情况,您可以在其中创建自定义扩展。
  • 你为什么不做一个宝石?
  • 原因是那些人很少或根本没有使用 Rails 的经验,我希望他们遵循严格的指导方针并创建少量文件(主要是视图),而不是整个 Rails 框架。我想使用的过程是:我为每个人创建一个应用程序的框架,将每个人配置为被用户的文件覆盖,用户在其目录上工作,应用程序在网络上运行! :) 你有什么想法吗?
  • 也许 Rails 不是这项工作的合适工具 - 听起来你最好创建一个框架,让人们可以使用它(比如 Wordpress)

标签: ruby-on-rails architecture


【解决方案1】:

我会在 railscasts 上阅读或观看这一集: http://railscasts.com/episodes/277-mountable-engines

这是一集免费剧集,应该会为您指明正确的方向。如果这不是您想要/需要的,您将不得不创建一个数据库驱动的方法,人们可以在其中添加路径名,然后通过基于 Web 的编辑器添加他们的代码,该编辑器存储在数据库中并在加载时执行。我向您保证,如果您或其他开发人员不知道他们在做什么,那么您会遇到安全问题。

另一种选择是使用炼油厂之类的东西,它是一个可扩展的 CMS 系统,人们可以减少伤害:)

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多