1

私はクラスを宣言する宝石を持っていますFulltextRow

異なるgemのクラスを開くために、hacks.rbという初期化子を作成しました。

次のコードを追加しました。

FulltextRow.class_eval do
    ....
end

ただし、クラスが必要ない場合は、例外が発生します。

uninitialized constant FulltextRow (NameError)

しかし、私がそうすればそれはうまくいきます:

require 'fulltext_row'
FulltextRow.class_eval do
    ....
end

私の質問は:

gemで定義されているクラスが必要なのはなぜですか?それらは自動的に必要ではありませんか?

4

1 に答える 1

0

私はあなたを助けたいのですが、与えられた情報の不足でこれをトラブルシューティングするのは難しいです。ただし、2つの提案があります。

1)gemがgem内に正しくロードされていることを確認する必要があります。私が言いたいのは、宝石が意図したとおりに機能していることを確認するサポートテストを行うことです。ファイル構造を正しく設定していないか、どこかにばかげたタイプミスがあったために、gemのクラスがロードされない場合がありました。

2)gemfileがgemを自動的にロードしないように設定されている可能性もあります。

gem full_text_row, require: false

幸運を!

于 2013-03-26T04:42:56.183 に答える