如何将大型 gem 应用程序转换为独立的 rails 应用程序

How to convert a large gem to standalone rails app

我正在构建社交网络并一直在使用 gem community_engine,但在实现我的应用程序所需的大量自定义时遇到了问题。我认为这将使我更容易重写和添加方法,并帮助我更好地理解和学习代码,因为我将能够实际看到所有代码的运行情况。

到目前为止,我尝试下载了源代码,添加了默认的 bin 目录和缺少的配置文件,以及所有 gem 依赖项。

我还需要做什么才能让应用程序运行?我意识到可能仍然有很多并且可能不容易解释,但至少有任何类型的文档可以帮助我理解如何将 gem 转换为 Rails申请?

这是 community_engine 存储库:https://github.com/bborn/communityengine

因为这个想法可能会招致一些批评,我要补充一点,我最初构建应用程序时没有接受设计的任何大型插件,但是我 运行 没时间完成这个。

我尝试过的更多内容:

将文件移动到新的 rails 应用程序,将服务器连接到 运行 但遇到许多看似随机的错误,修复了一些但似乎弹出了更多我无法弄清楚的错误:

我也看了 http://guides.rubyonrails.org/plugins.html 但这个 gem 似乎超出了这个范围。

我认为您正在寻找一种将 Rails 引擎连接到 rails 应用程序的方法。 Hooking Into an Application section of the Getting Started with Rails Engines 指南应该正是您要查找的内容。

这里有两个关于 Rails 引擎的额外资源。

A Guide to Rails Engines in the Wild

Rails::Engine - Ruby on Rails API

我建议您克隆 gem 并开始将文件从 gem 复制到新的 Rails 应用程序中。

引擎 gem 可能与 Rails 应用程序具有相似的结构,因此您应该能够将文件从相应的文件夹移动到 Rails 中的同一文件夹根文件夹。

您可能需要将 gem 文件移出模块、更改命名空间等。查看您要包含的文件的相关文件夹可能包括 app/config/db/、任何 gem Gemfile 或 gemspec 文件中的依赖项,以及 spec/ 或 test/.

除此之外,我认为您的问题没有灵丹妙药的答案,您将不得不解决问题,直到您解决这个问题 运行,如果您遇到了问题,也许会提出后续问题一个你无法逾越的障碍。