Railsアプリで写真をアップロードするように設定しようとしました。ただし、carrierwaveアップローダーは、アップロードされる写真のサイズを変更しません。resize_to_fill関数を呼び出さないと、写真は完全にアップロードされます。何かアドバイス?
resize_to_fillを使用して写真を送信すると、「処理に失敗しました」というエラーが返されます。どうすれば修正できますか?
resize_to_fillを呼び出すには、「require」「carrierwave /processing / mini_magick」が必要だと思いますが、このファイルをどこに置くかわかりません。
gemfile
"carrierwave"、 "0.4.10"
"mini_magick"、 "3.2.1"
"rails"、 "2.3.14"
プラットフォーム
win764ビット
ルビー1.8.7imagemagick(パス= C:\ ImageMagick-6.7.2-Q16)
バッターヘッド
お返事をありがとうございます。以下は私のコーディングです、アドバイスしてください。
私はちょうど問題がwin7+imagemagick + mini_magick +carrierwaveの私の組み合わせから来ていると思っていますか?そのような問題は多くの人が簡単に再現できたはずだと思います。それらのバージョンは互いに互換性がありませんか?
アプリケーションをテストして、写真をもう一度アップロードしようとしました。返されたprocessing_error:
MiniMagickでの操作に失敗しました。画像ではない可能性がありますか?元のエラー:コマンド( "identify -ping C:/Users/User/mini_magick20111018-4296-f18lsi-0.jpg")が失敗しました:{:output => "'identify' \ 244 \ 243 \ 254O \ 244 \ 272 \ 263 \ 241 \251Υ〜\ 263 \ 241 \ 251R \ 245O \ 241B ............ "、:status_code => 1}
もちろん、jpgはC:/ Users/Userフォルダに作成されていません。助けてください。
{avatar_uploader.rb}
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :resize_to_fill => [320, 240]
def extension_white_list
%w(jpg jpeg gif png)
end
end
{event_photo.rb}
class EventPhoto < ActiveRecord::Base
attr_accessible :event_id, :avatar, :created_by, :updated_by
belongs_to:event
mount_uploader :avatar, AvatarUploader
end
{preinitializer.rb}
begin
require 'rubygems'
require 'bundler'
end