2011-11-23 69 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