3

Rails アプリケーションで、ペーパークリップの URL を含むページをレンダリングできなくなりました。最近、gem バンドルを更新しました。Rails 3.2.8 と Paperclip 3.1.4 を使用しています。以前は Paperclip 2.7.0 を使用していました。

失敗している私のビューのリンクは次のとおりです。

ad.image.url(:medium)

私の Ad モデルには次の宣言があります。

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

Paperclipgithubページにリストされている要件を確認してください。

PaperclipにはRubyバージョン>=1.9.2およびRailsバージョン>=3.0が必要になりました(Ruby on RailsでPaperclipを使用する場合のみ)。

まだRuby1.8.7またはRubyonRails 2.3.xを使用している場合でも、プロジェクトでPaperclip2.7.xを使用できます。また、このREADMEのすべてがご使用のバージョンのペーパークリップに適用されない場合があります。代わりに、バージョン2.7のREADMEをお読みください。

于 2012-08-21T17:26:32.857 に答える