2014-11-05 103 views
0

我需要使用ffi gem來訪問本機擴展。 當我在一個簡單的ruby腳本中需要'ffi'時,它工作正常。但是當我在我的Rails應用程序中需要ffi時,那麼我得到:無法加載這樣的文件 - ffi爲什麼?爲什麼我無法加載這樣的文件?

寶石的env示出了該:

RubyGems的環境:

  • RubyGems的VERSION:2.2.2
  • RUBY VERSION:1.9.3(2012-04-20 PATCHLEVEL 194)[x86_64的Linux的]
  • 安裝目錄:/usr/lib/ruby/gems/1.9.1
  • Ruby可執行文件:/usr/bin/ruby1.9.1
  • EXECUTABLE總監Y:在/ usr/bin中
  • SPEC緩存目錄:/home/adminuser/.gem/specs
  • RubyGems的平臺:
    • 紅寶石
    • x86_64的Linux的
    • 創業板的路徑:
      • /usr/lib中/紅寶石/寶石/ 1.9.1
      • /home/adminuser/.gem/ruby/1.9.1
+2

是否在捆綁軟件中安裝了gem? – 2014-11-05 17:11:22

回答

0

在你的Gemfile添加這一行:

gem 'ffi' 

下一頁:

$ bundle install 

現在:

require 'ffi' 

您需要指定要在要使用的寶石你的Gemfile爲了使它可以用你的Rails項目和捆綁器。

更新:我會鼓勵你籤How does bundler bundlehow bundler require gems,這railscast

+0

好的,但是爲什麼?爲什麼Ruby腳本能夠加載寶石,Rails不是? – NMO 2014-11-06 00:44:34

+0

@NMO:閱讀我在最新版本中發佈的鏈接。 – Surya 2014-11-06 06:48:47

+0

我想我在第二個鏈接中找到了答案:「爲了防止'Kernel#require'在其他已安裝的gem中進一步查看,Bundler還通過恢復到原始實現來禁用已修補的'Kernel#require'」。 對不對? – NMO 2014-11-07 10:50:28

相關問題