【发布时间】:2023-04-08 22:42:02
【问题描述】:
我有一组文件位于 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作为例子。
我的 Gemfile 中有 bindata。当我运行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 控制台中。
【问题讨论】:
标签: ruby-on-rails rubygems bindata