如何在 ROR 应用程序中将 rake 任务转换为简单的函数调用?

How to convert a rake task into a simple function call in a ROR application?

我是 ROR 的新手,所以我的问题可能很简单。不过,我想说明一下我的状态。

我有一个 ruby project1 作为图书馆。从这个项目中,我对具有这种特定形式的 1 个 rake 任务感兴趣:

rake function1: function2 [arg1, arg2]

然后,我正在实施另一个 ROR 应用程序,我想在其中包含 project1,并在我的库中调用来自 projects1 的函数 rake 任务,因为我需要它的功能。

谁能指导我如何调用这些函数?是否应该在代码中搜索并调用相应的函数?有没有更简单的方法?

有很多方法可以将一个项目的代码包含在另一个项目中。

一种流行的方式是Ruby gems。核心思想是将代码打包到 gem,这是一个独立的库。然后,您将 gem 包含在您的各种项目中。

如果您使用 git,另一种流行的方法是创建一个 git 存储库,其中包含您要共享的代码。然后,您将存储库作为 git 子模块添加到您的各个项目中。您还将存储库的目录放在 rake 任务的加载路径上(或者您需要通过相对路径获取特定文件)。

根据我的经验,gem 需要更多时间来设置和维护,并且当您更改 gem 代码时,您必须发布新的 gem 版本。而 git 子模块又快又简单。我建议您尝试两种方法,看看您更喜欢哪种方法。