2017-05-09 20 views
1

私はCapybara/Poltergeist RSPEC統合テストを実行しようとしています。ペーパークリップActionController :: RoutingError:[GET]と一致するルートがありません

私のテストの中で、イメージを作成して、それを「Paperclip」でアップロードしています。

モデル:テスト環境のための私のapplication.rbPlatform::ContentImage

has_attached_file :attachment, { 
    styles: lambda { |a| a.instance.styles_by_image_type}, 
    processors: [:thumbnail, :paperclip_optimizer], 
    paperclip_optimizer: { 
     nice: 19, 
     jpegoptim: { allow_lossy: true, strip: :all, max_quality: 75 }, 
     jpegrecompress: {allow_lossy: true, quality: 3}, 
     jpegtran: {progressive: true}, 
     optipng: { level: 2 }, 
     pngout: false 
    }, 
    path: "#{'public/' if Rails.env.test?}content_image/:id/:style/:basename.:extension", 
    convert_options: { :all => '-auto-orient +profile "exif"' }, 
    s3_headers: { 'Cache-Control' => 'max-age=31536000'} 
    } 

config.paperclip_defaults = { 
     url: "/public/:class/:id/:style/:basename.:extension" 
     } 

マイエラー

ActionController::RoutingError: 
     No route matches [GET] "/system/platform/content_images/attachments/000/000/001/thumb/blue_night_swatch.jpg" 

私は画像を表示しようとしていますが、私はちょうどことはできませんが返さURLを正しく設定しているようです。 Platform::ContentImageモデル内のデフォルトを上書きするので、ディレクトリpublic/content_imageが正常に作成されますが、テスト中はクラス名を「復調」できないようです。 URLをPlatform::ContentImageの定義で指定することはできますが、テスト環境のみに指定することはできますか?

+0

はあなたのためにこの仕事をしていますか? – Jeremie

+0

@Jeremieええ、それは動作しますが、テスト中ではありません – reid

答えて

-1

フォーム上にこのメッセージを入れて、それが保存されていない理由を参照してください。あなたが開発にしようとすると

<% if @portifolio.errors.any? %> 
<div id="error_explanation"> 
<h2><%= pluralize(@portifolio.errors.count, "error") %> 
prohibited this portifolio from being saved:</h2> 
<ul> 
<% @portifolio.errors.full_messages.each do |message| %> 
    <li><%= message %></li> 
<% end %> 
</ul> 
</div> 
<% end %> 
関連する問題