Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 安装未发布的gem会导致;“没有要加载的此类文件”;_Ruby_Rubygems_Bundler_Irb - Fatal编程技术网

Ruby 安装未发布的gem会导致;“没有要加载的此类文件”;

Ruby 安装未发布的gem会导致;“没有要加载的此类文件”;,ruby,rubygems,bundler,irb,Ruby,Rubygems,Bundler,Irb,我正在构建一个本地的gem,我希望能够在pry中测试和使用它。我正在通过bundle gem blah创建我的gem gem列表显示gem gem contents blah确认它安装在我的GEMPATH中的某个位置 gem“blah”,:path=>“path/to/gem”使其在rails控制台中可用 但当我简单地尝试要求它时,它的内部require“file”代码似乎不起作用。我用以下结构开始了一个示例gem: ├── Gemfile ├── LICENSE ├── README.md

我正在构建一个本地的gem,我希望能够在pry中测试和使用它。我正在通过
bundle gem blah
创建我的gem

  • gem列表
    显示gem
  • gem contents blah
    确认它安装在我的GEMPATH中的某个位置
  • gem“blah”,:path=>“path/to/gem”
    使其在rails控制台中可用
但当我简单地尝试要求它时,它的内部
require“file”
代码似乎不起作用。我用以下结构开始了一个示例gem:

├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── blah.gemspec
├── lib
│   ├── blah
│   │   ├── ugh.rb
│   │   └── version.rb
│   └── blah.rb
└── pkg
    └── blah-0.0.1.gem
其中/lib/blah.rb以以下开头:

require "blah/version"
require "blah/ugh"
当我尝试将其加载到pry、IRB或通过
ruby-rubygems-e'require“blah”
,我得到:

~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': cannot load such file -- blah/ugh (LoadError)

你知道是什么导致了这种差异吗?我觉得我是在按照Bundler和其他gems建立的实践来做事,但也许我在某个地方出了差错。

请在直接运行ruby时尝试指定加载路径。这可以确保您的gem中相对需要的所有文件也都能找到

因此,在rails根目录中调用ruby时

ruby-rubygems-Ilib-e'需要“废话”

还是在撬箱子里

pry-I lib…


希望能有所帮助。

非常感谢,伊坦波。这正是我所需要的。