2016-11-17 44 views
0

我有一組文件位於Ruby on Rails應用程序的lib目錄中。在Rails應用程序中需要ruby中的bindata

我有一個需要使用這些文件的模型。在我的模型,我有以下:

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修訂,並不斷嘗試添加的寶石,看看他們是否會在我的rails控制檯加載。我回到了足夠遠的地步。不知道有什麼不同。不過,我也注意到,當我的彈簧服務器重新啓動,然後我的寶石將加載在我的軌道控制檯。

回答

0

若需要lib文件夾中的所有文件,添加config.autoload_paths << Rails.root.join('lib')application.rb,這個回答可以幫助你:https://stackoverflow.com/a/19650564/3739191

現在,

require 'bindata' 

應該工作:)

+0

我很確定它應該工作,但由於某種原因(可能是我仍然做錯了),它不適合我。我爲這個問題添加了更多信息。 – user2517182

相關問題