我无法再在我的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'
答案 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的自述文件。