3

我不能再在我的 Rails 应用程序中呈现带有回形针 URL 的页面。我最近更新了我的 gem 包。我正在使用 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'
4

2 回答 2

15

出于某种原因,我有:

:storage => :file

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

于 2012-08-21T17:47:53.890 回答
0

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

Paperclip 现在需要 Ruby 版本 >= 1.9.2 和 Rails 版本 >= 3.0(仅当您打算将 Paperclip 与 Ruby on Rails 一起使用时。)

如果您仍在使用 Ruby 1.8.7 或 Ruby on Rails 2.3.x,您仍然可以在项目中使用 Paperclip 2.7.x。此外,本 README 中的所有内容可能不适用于您的 Paperclip 版本,您应该阅读 2.7 版的 README。

于 2012-08-21T17:26:32.857 回答