新手问题 RMagick undefined method `include' for

skpark1987 · 2015年04月12日 · 最后由 skpark1987 回复于 2015年04月13日 · 1954 次阅读

开发环境 ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] Rails 4.2.0 外部插件 ImageMagick: 6.9.0-1 Q16 x86_64 RMagick: 2.14.0

我想使用 Rmagick 对图片进行处理,并且已经部署好 ImageMagick 环境。使用的方式为 brew install imagemagick gem install rmagick 并且编辑了 Gemfile 添加了 gem 'rmagick', '2.14.0' 记录

我的代码为

require 'RMagick'
include Magick   #这一行报错
=begin
错误信息为:NoMethodError in GalleriesController#ajax_getGalleryMiddleImage
undefined method `include' for #<GalleriesController:0x007f82e694bbd0>
=end

有人了解这个错误吗?实在不清楚为啥基本的 inlucde 都会报错,我也谷歌搜索过,可能错误比较特殊,没找到相同的。

你代码贴的不全,我猜一下,完整的代码应该是这样:

class GalleriesController

  def ajax_getGalleryMiddleImage
    require 'RMagick'
    include Magick

    #...
  end

end

按照这样的代码来分析: 首先 include 是 Module 的实例方法,只能这样用:

class GalleriesController
  include Magick

end

然后,你确定你要把 Magick 作为模块引入 GalleriesController 里?我对这个库不太了解,但是我查了下,不需要引入吧。

#1 楼 @lolychee 恩,用你说的方式尝试了一下,果然可以,厉害。 我没有系统的学过 Ruby,可能基础方面有些差,谢谢啦。 我写的是官方网站里的 Demo,深入的还没了解。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号