私はRuby on Rails 3.0.9とPaperclip 2.3を使用しています。 Paperclipの宝石は2種類のバリデーションメソッド(validates_attachment_presence
とvalidates_attachment_content_type
)しか提供していないので、カスタムバリデーションメソッドを実装しようとしています。私のモデルファイルでカスタム検証方法を改善して実行するにはどうすればよいですか?
私が持っているだけ次の検証方法
私はこのように私のコントローラから呼び出すdef validates_avatar(attribute_name, file)
if file.nil? # file value is nil if no file is uploaded
self.errors.add("#{attribute_name}", "You must select a file")
else
self.errors.add("#{attribute_name}", "Avatar is an invalid image format") unless MIME_TYPES.include?(file.content_type)
self.errors.add("#{attribute_name}", "Avatar is too big" if ((file.size > AVATAR_FILE_MAX_SIZE.to_i) || (file.size == nil))
end
return self.errors.empty?
end
:
if @user.validates_avatar(:avatar, params[:user][:avatar])
...
end
は、私は上記の検証をしたいと思いますRuby on Railsのバリデーションメソッド(例:as-like validates :title, :presence => true
のように)と同じ方法で\を実行するようにします。
私はどのようにしてアバターの検証を処理するために上記のコードを改善することができますか?