Witam.
Mam drobny problem z validiacją z paperclipem.
W bundle mam:
Using paperclip (2.7.0)
Using mimetype-fu (0.1.2)
Model
[code]class Image < ActiveRecord::Base
attr_accessible :photo
attr_accessor :photo
has_attached_file :photo, :styles => { :original => “850x850>”, :medium => “621”, :thumb => “150x150>” },
:url => “/photos/:style/:basename.:extension”
validates_attachment_presence :photo
validates_attachment_content_type :photo, :content_type => [ ‘image/jpeg’ ], :message => ‘Plik musi być zdjęciem w formacie jpg, jpeg, png’
validates_attachment_size :photo, :less_than => 2.megabyte, :message => ‘Plik przekracza maksymalną wielkość 2MB’
before_create :random_file_name
belongs_to :page
belongs_to :gallery
private
def random_file_name
if photo?
extension = File.extname(photo_file_name).downcase
self.photo.instance_write(:file_name, “#{SecureRandom.hex(10)}#{extension}”)
end
end
end[/code]
Problem polega na tym że kiedy podam plik np tekstowy to uparty paperclip usilnie stara się go przeskalować do podanych styli i zwiesza mi aplikację na jakieś 30 sekund, po tym czasie kulturalnie zgłasza mi komunikat ‘Plik musi być zdjęciem w formacie jpg, jpeg, png’
Dodałem nawet gema mimetype-fu. Z tego co wyczytałem to na windows sprawdza contenttype tylko po rozszeżeniu które w moim przypadku jest txt.
Dodam jeszcze komunikat z konsoli
Processing by Admin::ImagesController#create as JSON
Parameters: {"image"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x607e990 @content_type="text/plain", @original_filename="
Nowy dokument tekstowy.txt", @tempfile=#<File:C:/Users/mkroszka/AppData/Local/Temp/RackMultipart20120817-2204-1trcs9w-0>, @header
s="Content-Disposition: form-data; name=\"image[photo]\"; filename=\"Nowy dokument tekstowy.txt\"\r\nContent-Type: text/plain\r\n
">}, "authenticity_token"=>"NEGTVcriRoVLVEtQB3gQfvL2xbc2KP3bhF9muHEMujQ=", "utf8"=>"Ôťô"}
e[32mCommande[0m :: identify -format %wx%h "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-0.txt[0]"
e[32mCommande[0m :: convert "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-0.txt[0]" -resize "850x850>" "C:/Us
ers/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1s2-0"
e[32mCommande[0m :: identify -format %wx%h "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1
s2-0[0]"
e[32mCommande[0m :: convert "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1s2-0[0]" -resiz
e "150x150>" "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1s2-020120817-2204-1p2wmz4-0"
e[32mCommande[0m :: identify -format %wx%h "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1
s2-0[0]"
e[32mCommande[0m :: convert "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1s2-0[0]" -resiz
e "621" "C:/Users/mkroszka/AppData/Local/Temp/stream20120817-2204-1s100al-020120817-2204-1yfq1s2-020120817-2204-vmj0sy-0"
e[1me[35m (0.0ms)e[0m BEGIN
e[1me[36m (0.0ms)e[0m e[1mROLLBACKe[0m
Completed 200 OK in 42180ms (Views: 0.0ms | ActiveRecord: 0.0ms)