Büroklammer + RSpec: Validierung des Inhaltstyps
ich benutzePaperclip
in meiner Rails-Anwendung zum Anhängenimages
. Ich habe die Validierung für erklärtcontent_type
in meinem Modell als
validates_attachment :image,
:content_type => { :content_type => ["image/jpg", "image/gif", "image/png"] }
Ich habe zwei Beispiele, eines mit einem gültigen Bild und eines mit einem ungültigen Bild
Für ein ungültiges Bild habe ich gerade a umbenannt.txt
Datei zu einem.png
it "Image is valid" do
image = File.new("#{Rails.root}/spec/support/right.png")
expect(FactoryGirl.build(:pin, image: image)).to be_valid
end
it "Image is invalid" do
image = File.new("#{Rails.root}/spec/support/wrong.png")
expect(FactoryGirl.build(:pin, image: image)).to have(1).errors_on(:image_content_type)
end
Ich habe erwartet, dass meine beiden Beispiele erfolgreich ausgeführt werden. ABER mein zweites Beispiel schlägt fehl. Ich erhalte keinen Fehler für content_type vonwrong.png
.
Ich dachte, die Büroklammercontent_type
Bei der Validierung wird das Dateiformat (Binärdatencodierung) einer hochgeladenen Datei überprüft. ABER es scheint, dass hier nur nach der Dateierweiterung gesucht wird. Prüft diese Überprüfung nur die Erweiterung einer hochgeladenen Datei?
Mir fehlt hier vielleicht etwas (Konfiguration?). Gibt es eine andere Validierung in Paperclip, um dies zu erreichen? Oder sollte ich mich in diesem Fall für einen benutzerdefinierten Validator entscheiden?