2017-11-07 11 views
1

私は以下の3つの異なるモデルで検証しています。どのように私はそれをリファクタリングすることができます。Rails 4 - Paperclipリファクタリングアウトhas_attached_file

has_attached_file :image, 
        styles: { 
         large: '700x400>', 
         medium: '400x400#', 
         thumb: '100x100#' 
        }, 
        default_url: '/images/missing.png' 

validates_attachment_content_type :image, 
            content_type: /\Aimage\/.*\z/ 

答えて

1

concernに移動できます。懸念を生む最も難しい部分は、それを命名することです。名前を変更しても構いませんが、私はこの関心事をImageAttachableと呼ぶつもりです。たぶんそれは愚かな名前ですが、私が短期間でやり遂げることができる最高です。

module ImageAttachable 
    extend ActiveSupport::Concern 

    included do 
    has_attached_file :image, 
        styles: { 
        large: '700x400>', 
        medium: '400x400#', 
        thumb: '100x100#' 
        }, 
        default_url: '/images/missing.png' 

    validates_attachment_content_type :image, 
            content_type: /\Aimage\/.*\z/ 
    end 

end 

あなたは、あなたのモデルから上記のコードをすべて削除し、それに代わる

アプリ/モデル/懸念/ image_attachable.rb:これをコーディングするには、次のファイルを追加します

include ImageAttachable 

DHHがan excellent articleと書かれています。

関連する問題