我有一组文件位于 Ruby on Rails 应用程序的 lib 目录中。
我有一个模型需要使用这些文件。在我的模型中,我有以下内容:
require_relative '../../some_path_to_file_without_extention'
(旁注;我很想知道一种要求所有文件的方法,而不是每个文件的 require_relative )。
我 require_relative 的文件中包含以下要求。
require "bindata"
当我尝试从 require_relative 文件访问函数时,出现以下错误:
LoadError: cannot load such file -- bindata
这也发生在文件集中需要的其他 gem 上。我只是选择了bindata
一个例子。
我bindata
的 Gemfile 中有。当我运行bundle show bindata
时,它向我显示了bindata
.
我什至放入require 'bindata'
了我的模型,但它给了我同样的加载错误。
我该如何停止LoadError
?
任何帮助将不胜感激。
更新 1
当我跑步时bundle show
。我得到以下信息:
Gems included by the bundle:
...
* bcrypt (3.1.11)
* bindata (2.3.4)
...
然后在控制台中,要求 bcrypt 有效,但 bindata 无效。
irb(main):002:0> require 'bcrypt'
=> true
但 bindata 没有。
irb(main):003:0> require 'bindata'
LoadError: cannot load such file -- bindata
更新 2
好的,所以我知道这与我加载 Rails 环境的方式有关。
bundle exec irb
irb(main):001:0> require 'bindata'
=> true
更新 3
所以我返回了一些 git 提交并继续尝试添加 gem 并查看它们是否会加载到我的 rails 控制台中。如果确实如此,我就已经足够远了。不知道有什么不同。但是,我也注意到当我的 spring 服务器重新启动时,我的 gem 会加载到我的 rails 控制台中。