2014-11-05 3 views
0

Мне нужно использовать ffi gem для доступа к родным расширениям. Когда я требую «ffi» в простом рубиновом скрипте, тогда он отлично работает. Но когда мне нужно ffi в моем приложении Rails, я получаю: не может загрузить такой файл - ffi Почему?Почему я не могу загрузить такой файл?

камень ENV показывает это:

RubyGems среды:

  • Rubygems Версия: 2.2.2
  • РУБИНОВЫЙ версия: 1.9.3 (2012-04-20) 194 номера патчей [x86_64-Linux ]
  • УСТАНОВКА КАТАЛОГ: /usr/lib/ruby/gems/1.9.1
  • RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  • EXECUTABLE ДИРЕКТОР Y:/USR/бен
  • SPEC КЭШ КАТАЛОГ: /home/adminuser/.gem/specs
  • Rubygems ПЛАТФОРМЫ:
    • рубин
    • x86_64-Linux
    • GEM Paths:
      • /USR/Библиотека/рубин/драгоценные камни/1.9.1
      • /home/adminuser/.gem/ruby/1.9.1
+2

Является ли драгоценный камень установленным в комплекте? –

ответ

0

Добавьте эту строку в вашем Gemfile:

gem 'ffi' 

Далее:

$ bundle install 

Сейчас:

require 'ffi' 

Вы должны указать, какой камень вы собираетесь использовать в ваш Gemfile, чтобы сделать его доступным для вашего проекта Rails с помощью bundler.

UPDATE: Я призываю вас к оформлению заказа How does bundler bundle, how bundler require gems, и это railscast.

+0

Хорошо, но почему? Почему рубиновый скрипт способен загружать драгоценный камень, а Rails - нет? – NMO

+0

@NMO: Прочитайте ссылки, которые я опубликовал в обновленной редакции. – Surya

+0

Я думаю, что нашел ответ в вашей второй ссылке: «Чтобы предотвратить« Ядро # требуется »от дальнейшего поиска в других установленных драгоценных камнях, Bundler также отключает исправленное« Ядро # require », возвращаясь к исходной реализации». Справа? – NMO

Смежные вопросы