2

インストールした gem を Rails アプリケーションで動作させようとしています。以下を使用して、コマンド ラインから実行する Ruby プログラムで gem を問題なく要求できます。

require 'nokogiri'

しかし、Rails コントローラーの 1 つで同じことをしようとすると、「読み込むファイルがありません -- nokogiri」というエラーが表示されます。

lib/nokogiri.rb ファイルへのフルパスを使用しようとしましたが、「nokogiri/native」が見つからないため失敗します。

4

4 に答える 4

3

より良いのは、environment.rb ファイルに次を配置することです。

Rails::Initializer.run do |config|
  ...
  config.gem :nokogiri
  ...
end

これにより、その特定の gem に依存していることを Rails に伝えます。また、特定のバージョンを指定することもでき、必要に応じてすべての gem を自動的に同期したり、ベンダー/gem にアンパックしたりします。

于 2009-03-28T23:08:02.540 に答える
2

同様のエラーが発生しましたが、environment.rbファイルに次のファイルを入れるのを忘れました:(引用符で囲まれていることに注意してください"nokogiri"

Rails::Initializer.run do |config|
  ...
  config.gem "nokogiri"
  ...
end
于 2010-09-30T01:48:47.683 に答える
1

わかりました。これはかなりばかげているように聞こえるでしょう...しかしまあ...

私のマシンには2つのルビーがインストールされていたことがわかりました。私はInstantRailsを使用してテストアプリケーションを提供していますが、rubyのインストールがあらかじめパッケージ化されています。しかし、これ以外に別のインストールがあり、InstantRailsのインストールではなく、nokogiriがインストールされたのはここでした。

いずれにせよ、彼らは宝石を探すためにさまざまな場所を探していました。

于 2009-03-28T23:32:54.760 に答える
0

以下を試してください

require 'rubygems'  
gem 'nokogiri'  

何らかの形式の *nix を使用している場合、gem のインストール時にエラー、特に gem がパス上にないことを示すエラーが発生しましたか? これは、root としてではなく自分自身として gem をインストールし、gem パスに個人的な gem ライブラリがない場合に発生する可能性があります。

常に使用して宝石をインストールする場合

sudo gem install some_gem_name 

そうすれば、その問題は発生しません。

于 2009-03-28T22:59:07.773 に答える