2016-05-22 5 views
-2

私はルビーには新しく、ルビーの宝石「combine_pdf」が提供する機能を使用しようとしています。ドキュメントで説明したように、私はCombinePDF.load( "file1.pdf")を実行しようとしています。 ただし、エラーが発生しています 未初期化定数CombinePDFがX :: Y(または類似のもの)です。モジュール内部のクラスを使用

私が使用しているクラスpdfは、モジュールX :: Yの中にあります。そしてRubyは何とか同じパッケージでCombinePDFを探すことを試みています。これは実際にはrailsプロジェクトであり、私はgemfileにcombinepdfを持っています。

答えて

2

使用ダブルコロン:

::CombinePDF 

これは、すべての定数解決mechanizmについてです - ダブルコロンの手段は、あなたが最も外側のスコープで定義され、定数を参照したいです。

+0

あなたを得ました。ご回答有難うございます。これは私が探していたものです。 Btwの再起動のカップルは私のためのトリックでした。 – Rpant

1

Gemfileにcombine_pdfが含まれていたようですが、requireというファイルは使用していませんでした。あなたはそのファイルにこのファイルを持っているはずです:

require 'combine_pdf' 

ですか?

+0

私は面白い部分はレールが今私が何もせずにPDFを結合見つけることができるです。同じ問題が再び起こるなら、私はこれを試してみるでしょう。同じクラスもPDFフォームを使用していましたので、必要なpdfformsを行う必要はありませんでした。単純なpdfforms.newが動作しました – Rpant

+0

Bundlerを使ってRailsを使うときに明白にあなたの宝石を必要としない理由を説明しているJustin Weissの優れた記事が見つかりました:http://www.justinweiss.com/articles/how-does-rails-handle-gems /。あなたの問題は、あなたのGemfileに 'combine_pdf'を追加したが、あなたがGemfile.lockファイルに現れるように 'bundle install'を実行しなかったということでしょう。 –

+0

バンドルインストールを実行しました。問題は、間違った範囲でクラスを探していたことでした。それがどうやって解決されたのか全く分かりません。リンクありがとう。 – Rpant

関連する問題