2014-11-05 62 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

相关问题