2016-07-20 3 views
0

in meiner Rails-App habe ich die Carrierwave-Juwel, um Zeug hochzuladen. Jetzt möchte ich eine Validierung von Dateiformatencarrierwave-Whitelist-Fehler wird nicht angezeigt

so habe ich dies in Uploader hinzugefügt:

def extension_white_list 
%w(jpg jpeg gif png) 
end 

Wenn ich versuche, ein PDF laden sie die pdf dosn't hochladen, aber kein Fehler auf Bildschirm gedruckt. Was fehlt?

Ich denke, die Seite sollte zurückgehen, damit der Benutzer die Möglichkeit hat, eine andere Datei auszuwählen?

Dank

UPDATE - Formularansicht Code:

<%= form_for(@channel, :html => {:multipart => true, :class => "form-horizontal", :role => "form"}, :method => :post, :url => url_for(controller: 'channels', action: 'edit', id: @channel.id)) do |f| %> 
     <div class="col-md-4"> 
     <div class="form-group col-md-12"> 
      <label><%= f.label :channelimage %></label> 
      <%= f.file_field :channelimage, :class => "form-control", :placeholder => :image%> 
      <br> 
      <% if @channel.channelimage.present? %> 
       <div clasS="thumbnail"> 
       <img src="<%= @channel.channelimage %>" alt="<%= @channel.channelname %>"/> 
       </div> 
      <% end %> 
     </div> 
     </div> 

UPDATE: Controller-Funktion

#Speichert die geänderten Werte eines Channels 
def edit 
    @user = User.find_by_id session[:user_id] 
    @knowledgeproviderList = @user.knowledgeprovider 
    @channel = Channel.find params[:id] 
    @channelList = Channel.where(knowledgeprovider_id: @knowledgeproviderList.pluck(:id)) 
    if request.post? 
    @channel.update_attributes(channel_edit_params) 
    if @channel.save 
     flash[:notice] = t("flash.saved") 
     redirect_to action: :index 
    else 
     redirect_to action: :edit, :id => @channel.id 
    end 
    end 
end 
+0

Können Sie den Code anzeigen Post, wo Sie Fehler sind die Ausgabe –

+0

Wahrscheinlich das Problem ... nirgendwo im Moment das ist ... weiß nicht, wie in der doc nicht etwas ist, erwähnt, wie – Felix

+0

I habe die Ansicht Code über – Felix

Antwort

1

Validation - Guides

So im Wesentlichen sind Sie keine Fehler ausgibt, so dass die Verwendung von Format aus den Anleitungen, die Sie hinzufügen müssen:

<% if @channel.errors.any? %> 
    <div id="error_explanation"> 
    <h2> 
     <%= pluralize(@channel.errors.count, "error") %> prohibited 
     this channel from being saved: 
    </h2> 
    <ul> 
     <% @channel.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
<% end %> 
+0

hinzugefügt Danke Ich habe den obigen Code hinzugefügt, aber nichts hat sich geändert. – Felix

+0

und wenn ich den @ channel überprüfe, gibt es keine Fehler – Felix

+0

Was haben Sie in der Steuerung? Carrierwave sollte sie hinzufügen, wenn die Validierung ausgeführt wird. –