gpt4 book ai didi

ruby-on-rails - 加载错误 : cannot load such file -- gemname/base

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:10 25 4
gpt4 key购买 nike

我正在开发一个简单的 ruby​​ gem,其中我需要额外的类。以下是我的 gemname/lib 目录下的文件:

lib/
gemname/
base.rb
version.rb
gemname.rb

我在我的 gemname.rb 中包含了声明 require "gemname/base"

在本地构建和安装 gem 并转到 irbrequire gemname 后,我收到以下错误:

LoadError: cannot load such file -- ./gemname/base
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from /home/swaroop/.rvm/gems/ruby-2.0.0-p0/gems/gemname-0.0.6/lib/gemname.rb:2:in `<top (required)>'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `rescue in require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:122:in `require'
from (irb):1
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/bin/irb:13:in `<main>'

我哪里错了?

最佳答案

您的 gemname.gemspec 文件应该包含这样的内容。

spec.files = `git ls-files -z`.split("\x0")

您收到错误消息是因为您没有使用 git 对文件进行版本控制。如果你在使用 git 之前运行 rake install 然后如果你这样做了

irb
require "gemname"

这会引发错误。

这就是为什么。看它的安装路径是这样的。

gem list -d gemname  # this should return something like this

gemname (0.0.1)
Author: your name
License: MIT
Installed at: /Users/your_name/.rbenv/versions/2.0.0/lib/ruby/gems/2.0.0

打开位置并找到您的 gem 文件夹。您应该在那里看到 nothing

现在,将您的文件添加到 git 并至少提交一次。

git init
git add .
git commit -m "init"

然后执行 rake install 并要求它不应该引发错误。

irb
require "gemname" # no error, and you should see files in this gem's install folder.

关于ruby-on-rails - 加载错误 : cannot load such file -- gemname/base,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com