【问题标题】:Basic resizing with paperclip/imagemagick not working使用回形针/imagemagick 调整基本大小不起作用
【发布时间】:2011-09-21 19:02:33
【问题描述】:

我正在构建一个 Rails 3.1 应用程序,我正在使用 S3 和回形针来存储照片,但我不断收到以下错误:

RuntimeError (Style thumb has no processors defined.):

以下是我的照片模型中的相关线条:

has_attached_file :photo,
:default_style => :original,
:styles => {:thumb => "150x150>"},
:url => "uploads/photos/:id/photo.:extension",
:path => "uploads/photos/:id/photo.:extension",
:storage => :s3

这是照片控制器中第 49 行附近的代码:

@photo = current_user.photos.new
@photo.caption = params['Filename']
# first save so that we can render a row
@photo.save
@photo.photo = params['Filedata']

Thread.new do 
  # second save to upload the photo
  @photo.save
end

关于我做错了什么有什么想法吗?

【问题讨论】:

  • 您是否在 Paperclip 可以找到的地方安装了 ImageMagick 和 convert 工具?
  • which convert -> /usr/local/bin/convert,我的 development.rb 环境文件中有 Paperclip.options[:command_path] = "/usr/local/bin/" 。 .

标签: ruby-on-rails paperclip


【解决方案1】:

阅读有关处理器的回形针文档后,在我看来,默认处理器 (Paperclip::Thumbnail) 没有附加。您可以尝试手动添加:

:processors => [:thumbnail]

【讨论】:

  • 好吧,这至少改变了错误。现在是:You might have expected an instance of Array. The error occurred while evaluating nil.[]): app/controllers/photos_controller.rb:49:in 'create'
  • 你能给我们看看 PhotosController 中第 49 行的代码吗?
  • 你为什么要这样做双重保存,我以前没有见过这个。这与 S3 存储有关吗?简单地说@photo = current_user.create_photo(params[:photo])@photo.save不够吗?
  • 不,不会。是的,它与 s3 存储有关。当方法返回时,我需要图像的 id,但我不想等待照片上传到 s3。
【解决方案2】:

我发现了问题所在。我在初始化程序中覆盖了 Paperclip 的默认设置类方法。

【讨论】:

    【解决方案3】:

    对于 Mac OSX 用户:

    安装homebrew 并运行

    brew install imagemagick
    

    为我做了诀窍。

    PS。如果安装 imagemagick 的结果是这样的:

    错误:链接步骤未成功完成 公式已构建,但未符号链接到 /usr/local

    运行:

    sudo brew link imagemagick
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2016-12-10
      • 2014-01-06
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      相关资源
      最近更新 更多