2011-11-23 73 views
0

Rails noob here,所以我不知道我在做什麼錯。minimagick沒有方法「調整大小」

我們用mini_magick替換了許多回形針功能。直到我意識到出於某種原因,我們有一個名爲Image的類的事實正在吹捧。

我重命名了MiniMagick中的Image類,並解決了這個問題,但後來我們也有一個名爲method_missing的方法,它也在MiniMagick中。

將所有引用等重命名爲magick_method_missing,現在我收到以下錯誤消息。

undefined method `resize' for #<MiniMagick::ImageEditor:0x2b236a98c9f8> 

(ImageEditor是重命名的類)。這是我第一次不得不在我們的系統中處理插件。我所有的其他經驗都非常簡單,「寶石安裝...」大聲笑。有誰知道我可能會錯過什麼?

現在我只是要逐行檢查代碼,看看我是否錯過了某處的引用。這是我能想到的唯一的事情。

+0

哦,我看着都提供給該對象的功能,但現在看來,它不僅具有對象的方法並沒有什麼特別之處。我想這是可以預料的。 – Micharch54

+0

所以你有一個類MiniMagick :: Image和另一個YourApp :: Image兩個在不同的模塊,並不會衝突。你知道修補其他代碼的猴子通常被認爲是不正確的做法嗎? –

回答

0

爲什麼要重命名第三方代碼中的類和方法?

method_missing每當找不到方法時調用。如果我沒有記錯,MiniMagick使用它來調用二進制文件,重命名它不會工作,它必須命名爲method_missing

就使用插件而言,您可以使用寶石。它的主頁是located here

+0

我想如果我可以直接將寶石直接安裝到應用程序中,我會更容易,但是我們的IT不會讓我們安裝任何東西,所以我們必須安裝在本地文件夾中,然後手動安裝。我的印象是插件通常不會與主應用程序衝突,那麼爲什麼minimagick會導致我們所有的圖像調用爆炸? – Micharch54

+0

他們不應該使用未修改的插件將您的應用恢復到該版本並針對該錯誤發佈新帖子。這應該可以幫助您獲得答案,而無需修改其他第三方代碼。 –

+0

重置寶石回到基地,我仍然得到這個錯誤: 錯誤的參數數量(0代表1) 我無法弄清楚,因爲它失敗的行是image_file.resize image_size(其中image_size是字符串與從我們的數據庫中拉出的尺寸)。這也是讓我首先進行猴子補丁的問題,儘管我知道這可能是我們主應用程序的一個問題。我們的本地Ruby專家最近離開了,或者我確信這個問題不會有什麼大不了的...... – Micharch54

0

確保您安裝了imagemagick。我得到相同的錯誤

undefined method `resize' for #<MiniMagick::ImageEditor:0x2b236a98c9f8> 

我注意到我有imagemagick安裝在我的mac,但舊版本。我不得不卸載並重新安裝。

我用自制卸載舊版本並重新安裝ImageMagick的:

brew unlink imagemagick 
brew install imagemagick