Ruby 需要本地宝石红宝石

Ruby 需要本地宝石红宝石,ruby,rubygems,Ruby,Rubygems,我在本地机器上用Ruby创建了一个gem,我需要在启动服务的普通Ruby脚本中使用这个gem 我必须这样要求: require_relative '../../../my-gem/lib/my/gem' 是否可以在不输入相对路径的情况下执行此require?require检查$LOAD\u path中的文件。您可以将您的gem放在其中一个目录中,以便直接需要它。如果您不喜欢加载路径,可以在脚本中为其添加一个新目录,或者设置添加到加载路径的RUBYLIB环境变量。如果您有gem,可以安装它并使用

我在本地机器上用Ruby创建了一个gem,我需要在启动服务的普通Ruby脚本中使用这个gem

我必须这样要求:

require_relative '../../../my-gem/lib/my/gem'

是否可以在不输入相对路径的情况下执行此require?

require
检查
$LOAD\u path
中的文件。您可以将您的gem放在其中一个目录中,以便直接
需要它。如果您不喜欢加载路径,可以在脚本中为其添加一个新目录,或者设置添加到加载路径的
RUBYLIB
环境变量。

如果您有gem,可以安装它并使用
gem'my gem','=1.0.0.beta'设置您想要的版本(在我的示例中为1.0.0.beta)

但我认为余在寻找另一种解决方案:

您可以扩展
require
查看的位置:

$:.unshift('../../../my-gem/lib')
require('my/gem')


您也可以使用
$:它是否在您的gem path文件夹中?你是以某种方式安装的还是它只是放在一个随机文件夹中?我用rake安装了gem,我刚刚检查了一下,我的gem出现在/home/user/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems中,一个简单的
不需要“yourgem”
工作吗?可能重复我应该在
需要
之前的代码中把unshift放在哪里。请参阅我的代码示例。
$LOAD_PATH.unshift('../../../my-gem/lib')
require('my/gem')