2014-11-05 2 views
0

네이티브 확장에 액세스하려면 ffi gem을 사용해야합니다. 간단한 루비 스크립트에서 'ffi'가 필요한 경우 제대로 작동합니다. 하지만 필자의 레일 애플리케이션에서 ffi가 필요하면 다음과 같이 나타납니다. 은 이러한 파일을로드 할 수 없습니다 - 왜?왜 이러한 파일을로드 할 수 없습니까?

젬 환경 :

  • 젬 버전 2.2.2
  • 루비 VERSION :

    보석 ENV이 도시 1.9.3 (2012-04-20 패치 레벨 194) x86_64의 리눅스 ]

  • 설치 디렉토리 : /usr/lib/ruby/gems/1.9.1
  • RUBY EXECUTABLE : /usr/bin/ruby1.9.1
  • EXECUTABLE DIRECTOR Y :는/usr/빈
  • SPEC 캐시 디렉토리 : /home/adminuser/.gem/specs
  • 젬 플랫폼 :
    • 루비
    • x86_64에-리눅스
    • GEM 경로 :
      • /USR/lib 디렉토리/루비/보석/1.9.1
      • /home/adminuser/.gem/ruby/1.9.1
+2

보석이 번들러에 설치되어 있습니까? –

답변

0

당신의 Gemfile에이 줄을 추가

gem 'ffi' 

다음을 : 이제

$ bundle install 

:

require 'ffi' 

을 당신은 당신이 사용하고자하는 보석 지정해야 여러분의 Gemfile을 bundler로 Rails 프로젝트에서 사용할 수 있도록하십시오.

UPDATE : 나는 How does bundler bundle, how bundler require gems,이 railscast를 체크 아웃하는 것이 좋습니다 것입니다.

+0

알았어, 근데 왜? 왜 루비 스크립트가 보석을로드 할 수 있습니까? – NMO

+0

@NMO : 업데이트 된 개정판에 게시 한 링크를 읽으십시오. – Surya

+0

두 번째 링크에서 대답을 찾은 것 같습니다. "설치된 다른 보석에서'Kernel # require'가 더 이상 보이지 않도록하기 위해 Bundler는 패치 된'Kernel # require'을 원래 구현으로 되돌려 놓지 않습니다." 맞습니까? – NMO