2011-12-27 8 views
2

carrierwaveを使用して画像を管理しようとしています。私の問題は、アップロードした画像のすべてのバージョンが作成されていますが、フルサイズで作成されていることです。コード:Carrierwaveはrmagickを使用したサイジングバージョンではありません

class TechnologyImageUploader < CarrierWave::Uploader::Base 

    # Include RMagick or MiniMagick support: 
    include CarrierWave::RMagick 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    # Process files as they are uploaded: 
    #process :scale => [100, 100] 

    version :small do 
    process :resize_to_fit => [25,25] 
    end 
    version :medium do 
    process :resize_to_fit => [50,50] 
    end 
end 

すべての画像のバージョンは、元のアップロードのサイズとして表示されます。

+0

他のユーザーに役立つことを願っています問題。あなたはあなたのことを修正しましたか?あなたが解決策を分かち合うことができれば、とても感謝しています。ありがとう – svs

+0

こんにちは、ここで同じです。つまり、1つのバージョンしか指定しなかった場合、それは正しく動作しますが、複数のバージョンが存在する場合は、まだ1つのバージョンしか生成されません。これはおそらくいくつかのバージョンのバグかもしれません? o.O – p1100i

答えて

1

私と同じ原因が原因であなたにこの問題があるかどうかはわかりませんが、多分。 アップロードしたファイルを私用のフォルダに移動する必要がありました。私はあなたもそうしたと確信しています。

after :store, delete_cache 

def delete_cache(new_file) 
    FileUtils.rm_rf %{#{Rails.root.to_s}/public/uploads} 
end 

これに伴う問題は、バージョンが作成された後、後ということである:

は私のアップロード後、私は私がやったキャッシュを削除したい店舗がトリガされますが、そのアプリを削除し他のバージョンのメソッドはそのファイルをもう読み込めませんでした。

一時的な解決策は、cache_dirをプライベートフォルダに移動することでした。私は私が、把握する必要がありますことを、別の方法で、後に空にする必要があります。

def cache_dir 
    %{#{Rails.root.to_s}/tmp/uploads} 
end 
1

私の問題を解決することは、レールの環境がサーバーと「開発の「ステージング」と命名されました。ということでした'マックで。

ファイル4のconfig/initializers/carrierwave.rb(4行目)の行4は、「ステージング」という名前の環境の搬送波処理を無効にします。

処理作業を行うために、私はこの行を有効にするために必要な:

config.enable_processing = true 
0

は、私は私のアプリで何とか同様の問題を抱えています。私は ...バージョンとして、すべての「プロセス」を設定すると便利です 、私はバージョンを使用している場合、ことを考え出したと思いますけれども は、そうでなければ私はいくつかの方法が 奇妙...他人を「上書き」されたことに気付きました。その後になる::

class ImageUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 

    if Rails.env == "production" 
    storage :aws 
    else 
    storage :file 
    end 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    #i put everything as a version and it sorts the problem out.. 

    version :base do 
    process resize_to_fill: [228, 250] 
    end 

    version :industry do 
    process resize_to_fit: [228, 250] 
    end 

    version :portrait do 
    process resize_to_fill: [360, 200] 
    end 

    version :modal do 
    process resize_to_fill: [330, 300] 
    end 

end 

class ImageUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 

    if Rails.env == "production" 
    storage :aws 
    else 
    storage :file 
    end 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    #this is the 'first' process, 'while you upload', the one that seems to be an issue 
    process resize_to_fill: [228, 250] 


    version :industry do 
    process resize_to_fit: [228, 250] 
    end 

    version :portrait do 
    process resize_to_fill: [360, 200] 
    end 

    version :modal do 
    process resize_to_fill: [330, 300] 
    end 

end 

私は、これは私が同じに直面しています '真' であると

マリン

関連する問題