2016-05-22 50 views
-2

我是ruby的新手,嘗試使用由ruby gem'combine_pdf'提供的工具。正如文檔中所述,我正在嘗試執行CombinePDF.load(「file1.pdf」)。 但是,我得到一個錯誤 未初始化的常量CombinePDF在X :: Y(或類似的東西)。在模塊中使用類

我在使用combine pdf的類在模塊X :: Y中。而且ruby也在試圖在同一個包中尋找CombinePDF。這實際上是一個rails項目,我在gemfile中有combinepdf。

回答

2

使用雙冒號:

::CombinePDF 

這是所有關於常量分辨率mechanizm - 雙冒號手段,你要引用的常數,在最外層的範圍界定。

+0

找到了你。感謝您的回答。這是我正在尋找的。順便說一下,現在幾次重新啓動爲我做了詭計。 – Rpant

1

聽起來好像您雖然在Gemfile中包含combine_pdf,但您沒有在您使用它的文件中使用require。你應該在該文件中有這個:

require 'combine_pdf' 

你呢?

+0

我沒有..有趣的部分是軌道現在能夠找到Combine pdf沒有我做任何事情。如果我再次遇到同樣的問題,我會試試這個。同樣的類也使用PDFforms,我不必做一個需要pdfforms。一個簡單的pdfforms.new工作 – Rpant

+0

我剛剛發現了這篇由Justin Weiss撰寫的優秀文章,解釋了爲什麼在使用Bundler使用Rails(以及其他)時不需要明確地要求您的寶石:http://www.justinweiss.com/articles /如何-不護欄柄 - 寶石/。我認爲你的問題可能是你添加了'combine_pdf'到你的Gemfile中,但沒有運行'bundle install',這樣它就出現在你的Gemfile.lock文件中。 –

+0

我沒有運行捆綁安裝。問題在於它在錯誤的範圍內尋找班級。絕對不知道它是如何自行解決的。感謝您的鏈接。 – Rpant