Paperclip在更新后突然抛出一个奇怪的错误

时间:2012-08-21 17:22:55

标签: ruby-on-rails paperclip ruby-on-rails-3.2

我无法再在我的Rails应用程序中使用回形针网址呈现页面。我最近更新了我的宝石包。我正在使用Rails 3.2.8和Paperclip 3.1.4。我之前使用的是Paperclip 2.7.0。

我视图中失败的链接是:

ad.image.url(:medium)

我的广告模型包含以下声明:

Paperclip.interpolates :ad_subdomain do |attachment, style|
  attachment.instance.brand.subdomain
end

has_attached_file :image, 
                :default_url => '/images/blank.gif',
                :styles => { :medium => ["290x230>","jpg"],
                             :thumb => ["100x100>","jpg"] },
                :storage => :file,
                :path => "/mcp/ads/:style/:ad_subdomain/:basename.:extension"

抛出的错误是:

TypeError: wrong argument type Class (expected Module)
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:368:in `extend'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:368:in `initialize_storage'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:80:in `initialize'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/instance_methods.rb:5:in `new'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/instance_methods.rb:5:in `attachment_for'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip.rb:191:in `block in has_attached_file'

2 个答案:

答案 0 :(得分:14)

出于某种原因,我有:

:storage => :file

在我的声明中。这不起作用。如果你想使用文件系统,你只需完全省略存储行,它将是默认的。

答案 1 :(得分:0)

查看Paperclip github页面上列出的要求:

  

Paperclip现在需要Ruby版本> = 1.9.2和Rails版本> = 3.0   (只有当你要在Ruby on Rails上使用Paperclip时。)

     

如果你仍然使用Ruby 1.8.7或Ruby on Rails 2.3.x,你仍然可以   将Paperclip 2.7.x与您的项目一起使用。此外,本自述文件中的所有内容   可能不适用于您的Paperclip版本,您应该阅读   替代版本2.7的自述文件。