1

Rails 3アプリでtwitter-text-rb(https://github.com/twitter/twitter-text-rb)を使用しようとしています。

私はbundlerとgemfileを使用してインストールしましたが(一見正常に見えます)、次のように、アプリケーションヘルパーに自動リンク機能を含めようとすると次のようになります。

require 'twitter-text'
module ApplicationHelper
include Twitter::Autolink
end

アプリのルートを読み込もうとすると、ブラウザで次のエラーが発生します。

ルーティングエラー初期化されていない定数Twitter::Autolink使用可能なルートの詳細については、rakeルートを実行してみてください。

私は RubyGemsマニュアル内のこれらのトラブルシューティングの質問に従いましたが、「なぜ'some_gem'が失敗する必要があるのですか?」で示唆されている2つの問題のどちらでもないようです。

ターミナルを使用してアプリのルートから指示に従ったときの抜粋を次に示します。

manager$ gem list twitter-text

*** LOCAL GEMS ***

twitter-text (1.5.0)
manager$ ruby -rubygems -e 'require "twitter-text"'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require': no such file to load -- twitter-text (LoadError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
    from -e:1
manager$ gem contents --no-prefix twitter-text | grep lib
lib/twitter-text.rb
lib/twitter-text/autolink.rb
lib/twitter-text/deprecation.rb
lib/twitter-text/extractor.rb
lib/twitter-text/hit_highlighter.rb
lib/twitter-text/regex.rb
lib/twitter-text/rewriter.rb
lib/twitter-text/unicode.rb
lib/twitter-text/validation.rb
manager$ ruby -rubygems -e 'require "twitter-text"'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require': no such file to load -- twitter-text (LoadError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
    from -e:1
manager$ which ruby
/usr/bin/ruby
manager$ gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

私はアプリで他のいくつかの宝石を使用していますが、これまで同様の問題に遭遇したことはありません。

次に何をしようか迷っています。私はRuby/Rails(そしてそのことについてはプログラミング全般)にかなり慣れていないので、どんな助けでも大歓迎です。

ありがとう、

マット

4

1 に答える 1

0

これで、このgemが機能し、ロードエラーが削除されました(ただし、何がうまくいったかはわかりません)。

RVMをインストールし、Ruby1.9.2とRails3.2.3を使用してアプリとtwitter_gemを試しました。以前は、システムのデフォルトのRuby-1.8.7-とRails3.2.3を使用していました。宝石は正しくロードされ、完全に機能しました。

したがって、問題は以前のバージョンのRubyで動作しているgemにあるか、RVMのgemsetがアプリがgemを正しくロードするのに役立ったようです。

于 2012-10-12T05:58:58.490 に答える