在Rails 3应用程序之间共享视图

时间:2011-02-02 17:20:27

标签: ruby-on-rails

我想知道你对实现这一目标的几种方法的看法:

  1. 对共享文件使用符号链接

  2. 创建一个提供共享文件和代码的gem /插件

  3. 创建一个Web服务,从所需的应用程序中提取视图/部分内容并将其存储在缓存中

  4. 我的目标是降低大型应用程序的复杂性。假设我想构建一个在线社区,我想要一个应用程序来处理论坛,另一个应用程序来处理用户画廊等,以及一个管理用户并为其他应用程序提供公共视图的中心应用程序。

    因此,主应用程序必须为所有其他应用程序提供通用布局和小部件,每个应用程序也需要为主应用程序提供一些视图。

    例如,假设布局有一个主菜单,每个应用都有一个项目,每个项目都有一个超大的子菜单,所以我不能只有一个简单的标签和URL对列表。

    因此,主应用程序可能会要求每个子应用程序通过私有API提供其菜单项和内容,构建菜单,将输出保存在缓存中,并在询问时将完整菜单发送到每个应用程序。

    正如你所看到的,我已经倾向于选择3,但我想要一些关于我的方法的反馈,如果可能有更好的方法。

    感谢您的意见。

1 个答案:

答案 0 :(得分:1)

根据您的描述,听起来您应该使用单个Rails应用程序。视图相互依赖性使我认为您可以从这种方法中受益。我还想象测试将更加困难,因为您的“应用程序”将跨越三个实际的Rails应用程序。

也就是说,如果您开始使用三个应用程序,我建议不要使用和API。 API非常适合来回传递数据(json,xml ...),但它们不适合视图。我的建议是创建一个通用视图插件,这些插件可以存储在一个单独的git存储库中,并且只需在每个应用程序中使用。这样,公共代码在应用程序之间共享,但仍然可以在所有应用程序本地访问。

相关问题