gpt4 book ai didi

ruby-on-rails - 将 rails 应用程序封装在其他应用程序内部

转载 作者:行者123 更新时间:2023-12-02 07:09:14 25 4
gpt4 key购买 nike

我在 Rails 应用程序中构建了一个自定义管理面板,允许通过 GUI 界面编辑某些模型的内容。我最初设计了“管理”应用程序作为父应用程序(及其 MVC、Gemfile、迁移等),并创建了子应用程序(在名为 frontends 的目录中)作为管理模型的网站界面。子应用程序继承了父管理应用程序的 MVC,允许在现有管理架构的基础上设计和构建网站前端,而无需为每个新项目不断重新开发管理网站。

我的本​​地计算机上的结构目前如下所示:

Administration Application <-- Individual git repo
-> app
-> admin
-> config
...
-> frontends
-> Website_1 <-- Individual git repo
-> app
-> config
...
-> Website_2 <-- Individual git repo
-> app
-> config
...

当前前端由配置中的一个简单的 frontend.yml 文件标识,该文件在管理应用程序之前在初始化程序中加载前端应用程序。

但是,我觉得拥有这样的嵌套结构是不明智的。首先,git repos 的嵌套在我的本地机器上很困惑,更重要的是,在相对较短的时间内切换项目的上下文极其困难。例如,如果我想从 Website_1 切换到 Website_2,我必须退出 rails server 并运行切换前端的 rake 任务。当前端使用管理应用程序的不同分支时,它也会变得更加麻烦。我发现自己在 git 和 rake 上下文之间的切换上浪费了很多时间,以便继续开发我的项目。

我想更改应用程序的结构,其中每个前端都是其自己独立的 Rails 应用程序。看来这将使切换开发环境变得更加简单——一次允许多个应用程序在 Rails 服务器中运行、测试等。我还希望能够继续容纳git 下的管理应用程序 - 因为该应用程序在一系列分支和标签中具有不同的风格。

进行此重新配置的最佳方法是什么?我正在考虑创建管理应用程序的 gem 并从 Bundler 加载它。

最佳答案

我认为 gem 是你最好的选择。具体来说,我会考虑使用引擎;引擎是一个可以直接安装在你的routes.rb中的gem,使用如下:

mount Administration::Engine => '/administration'

引擎本质上是直接安装到其他应用程序中的迷你应用程序,这听起来正是您所需要的。

有关如何开始的更多信息,请查看Rails engine documentation 。这是 a handy walkthrough you can follow其中包括指向 enginex 的链接,一个用于引导引擎 gem 的快速生成器。

关于ruby-on-rails - 将 rails 应用程序封装在其他应用程序内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com