在rails应用程序中需要在ruby中的bindata

时间:2016-11-17 17:10:56

标签: ruby-on-rails rubygems bindata

我有一组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

这也适用于文件集中所需的其他宝石。我只选择了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提交并继续尝试添加gems并查看它们是否会在我的rails控制台中加载。我回去的时间远远不够。不知道有什么不同。但是,我也注意到当我的spring服务器重新启动时,我的gem将加载到我的rails控制台中。

1 个答案:

答案 0 :(得分:0)

要求lib文件夹中的所有文件,将config.autoload_paths << Rails.root.join('lib')添加到application.rb,此答案可以帮助您:https://stackoverflow.com/a/19650564/3739191

现在,

require 'bindata'

应该工作:)