Für das Handling von Uploads nutze ich ganz gerne das Plugin "UploadColumn" zu unter http://uploadcolumn.rubyforge.org/ Störend ist dabei nur das die "Magic Columns" nicht funktionieren. Diese sollen automatisch die Dateigröße und den Mimetype in die Datenbank schreiben. Dies ist aber nicht weiter hinderlich denn mit einem einfachem Handgriff lässt sich diese Funktion nachträglich implementieren.
So sieht eine entsprechende create Methode im Controller aus:
def create
@upload = Upload.new(params[:upload])
@upload.filename_mime_type = params[:upload][:filename].content_type
@upload.filename_filesize = params[:upload][:filename].size
@upload.save
# [...] usw.
end
Es wird Klar das mittels der Eigenschaften "content_type" und "size" des Uploads die magischen Datenbankfelder von Hand beschrieben werden. Nicht wirkliche Magie die an dieser Stelle wirkt, aber es funktioniert zunächst einmal.