1

以下は、正常に機能する画像コンテンツ タイプの検証です。

validates_attachment_size :icon, :less_than => MAX_SIZE.megabytes, :message => "最大サイズは 1 MB"
validates_attachment_content_type :icon, :content_type => ['画像/jpg','画像/jpeg', '画像/png', '画像/gif']

しかし

寸法も検証する必要があり、私のコードは

validates_each :icon do |記録、属性、値|
    if record.icon_file_name
       寸法 = Paperclip::Geometry.from_file(value.queued_for_write[:original])
       if(寸法.幅 > 600 || 寸法.高さ > 400)
         record.errors.add(:file, " #{record.icon_file_name} のサイズは 600*400 以下でなければなりません")
       終わり
     終わり
   終わり

imagemagickエラーが発生しますNot recognized by the 'identify' command error

これに光を当てることができますか?

ありがとう。

4

3 に答える 3

1

「validates_each」の代わりに「validate」メソッドを使用するのはどうですか http://paulsturgess.co.uk/articles/33-how-to-write-custom-validation-in-ruby-on-rails

于 2011-08-12T09:54:52.230 に答える
0

マシンに ImageMagick がインストールされていないようです。その場合は、次のように入力します

識別する

次のペーパークリップオプションに値としてパスを追加しますenvironment.rb

Paperclip.options[:command_path] = "/usr/local/bin/" #このフォルダーを想定

それがどうなるか教えて..

于 2011-08-12T09:36:44.610 に答える
0

最後に、あなたの入力の助けを借りて行いました。

検証:icon_dimensions
デフォルト icon_dimensions
  icon.to_file.nil でない限り?
    寸法 = Paperclip::Geometry.from_file(icon.to_file(:original))
    if(寸法.幅 > 72 || 寸法.高さ > 72)
      errors.add(:icon, " 寸法は 72*72 以下である必要があります")
    終わり
  終わり
終わり

validates_each が他の検証よりも前に実行されるか、オーバーライドされることを願っています。わからない :(

于 2011-08-29T10:50:15.887 に答える