2013-07-27 12 views
12

私はグーグル/スタックが何時間もオーバーフローしていて、この問題の解決策が見つかりませんでした。私はPaperClipのインストールがどうにか失敗したのかしらと思っています。Ruby on Rails PaperClip Gem validate_attachementエラー

validates_attachment :image, :presence => true, 
:content_type => { :content_type => 'image/jpeg', 'image/jpg', 'image/png', 'image/gif' }, 
:size => { less_than: => 5.megabytes } 

そして、私が使用することを試みた:私も、私はgithubの上のファイルの読み取りにもっと似たコードを試してみました

validates :image, presence: true, 
content_type: { content_type: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif']}, 
size: { less_than: 5.megabytes } 

:私は私のモデルフォルダ内の画像添付ファイルを検証しようとしています個々のバリデーション

validates_attachment_presence :image 
validates_attachment_content_type :image,:content_type => ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'] 
validates_attachment_size :image,:less_than => 5.megabytes 

すべてのケースでエラーが発生します。次のいずれかの

Routing Error 
undefined method `before_image_post_process' for #<Class:0x00000101461750> 
Try running rake routes for more information on available routes. 

または:

NoMethodError in PinsController#index 
undefined method `key?' for nil:NilClass 

答えて

32

はあなたのファイルにhas_attached_file :imageを持っていますか? その場合は、それがvalidates_attachmentより前であることを確認してください。

+0

あなたは正しい@savmacです。順序は重要です。私は同じ問題を抱えていますが、私はどこかで読むことを覚えています。 – egyamado

+0

'validates_attachment'に渡された添付ファイルが見つからない場合は、Paperclipでエラーが発生する可能性があります。 – dolzenko

1

savmacさんの修正は私のために今働いています。私は英雄が開いたときに同じ問題を抱えていた。モデルのラインは以前は順調ではなかったし、私のアプリは何ヶ月もシームレスに動いていた。ありがとう!

4

は、私はいつも(スニペットからコピーした後)イメージ変数を同じ方法で名前を変更することを忘れという理由だけで毎回このエラーを得続ける:

has_attached_file :avatar... 

validates_attachment_content_type :photo, :content_type... 

は→があるべきも:avatar代わりの:photo

これは、コードがDRYでない場合に問題がどのように発生するかの完全な例です。

関連する問題