In meiner rails 4 app verwende ich carrierwave um Bilder hochzuladen.Carrierwave - Presence-Validierung wird ausgelöst, wenn der Dateityp nicht auf der Whitelist steht
class UserItemImage < ActiveRecord::Base
include PicturesHelper
attr_accessor :foo
mount_uploader :picture, PictureUploader
belongs_to :user_item
validate :picture_size
validates :picture, presence: true
end
Ich bin mit dieser Whitelist in meiner picture_uploader.rb
def extension_white_list
%w(jpg jpeg png)
end
Meine Form
<%= simple_form_for :user_item_image, url: user_item_user_item_images_path(@user_item), multipart: true do |f| %>
<%= f.input :picture, as: :file, label: false, input_html: {multiple: true, class: 'image-file'} %>
Wenn ich versuche, eine Datei mit der Erweiterung nicht auf der weißen Liste zu befestigen. Ich bekomme eine Fehlermeldung "Kann nicht leer sein". Wenn ich die Anwesenheitsvalidierung entferne, wird der Validierungsfehler white_list korrekt angezeigt. Ich möchte wirklich die Dateierweiterung Fehlermeldung stattdessen angezeigt werden, weil technisch nicht leer ist, es hat nur eine falsche Datei.
Haben Sie das Problem gelöst? Ich habe das gleiche Problem! – gnclmorais
@gnclmorais Ich denke, ich habe gerade dies verwendet, um Dateieingabe http://plugins.krajee.com/file-input zu handhaben – user4584963