Schienen, wie die überprüfung von Datei-format?

Wie bestätige ich meine Datei Felder für das richtige format?

Möchte ich das Feld Bild, um zu überprüfen, dass es ist .png -, .jpg -, .jpeg.

Und die flv-Datei, dass es das Ende ist .flv

Und die quicktime -, dass es nicht das Ende .mov

Und wie erstelle ich Fehlermeldungen sagen, dass das Feld ist nicht gültig.

Meine simple_form_for:

<%= f.input :name, :label => 'Navn', :required => true %><br />
<%= f.label :tekst %><br />
<%= f.text_area :text, :label => 'Text', :size => '12x12' %><br />
<%= f.label "Upload billede - kræves" %><br />
<%= f.input :image, :label => '', :required => true %><br />
<%= f.label "Upload flv - kræves" %><br />
<%= f.input :flv, :label => '', :required => true %><br />
<%= f.label "Upload Quicktime - kræves"  %><br />
<%= f.input :quicktime, :label => '', :required => true %><br />
<%= f.button :submit, :value => 'Create movie' %>

Update:

Ich habe herauszufinden, wie Sie zu validieren .mov und .flv-Felder:

validates_format_of :flv, 
:with => %r{\.flv$}i, :message => "file must be in .flv format"

validates_format_of :mov, 
:with => %r{\.mov$}i, :message => "file must be in .mov format"

Ich gerade nicht, eine Lösung gefunden zu haben, um zu überprüfen das Bild.

Mein controller:

def savenew
    @photographer = Photographer.new(params[:photographer]) 
    @photographer.sort_order = Photographer.count + 1

    if @photographer.save   
      redirect_to :action => 'list', :id => params[:id]
      flash[:notice] = "Movie #{@photographer.name} is created"
    else    
      render 'create', :id => params[:id]             
    end                                 
end         
  • Ich weiß nicht, Schienen zu verlassen, da ich dies als Kommentar, aber dieser link von Interesse sein: groups.google.com/group/rubyonrails-talk/browse_thread/thread/...
  • Auch würde ich vorschlagen, entfernen die Sachen über Datei-Erweiterungen. Die Validierung ein format sehr Verschieden von der Validierung eine Erweiterung.
Schreibe einen Kommentar