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