[ruby-it] Upload file semplice
Luigi Maresca
marluigi a libero.it
Lun 4 Maggio 2009 14:00:03 CEST
Provo ad aiutarti senza l'utilizzo di nessun plugin, che poi con il
passare del tempo non funziona più. Le operazioni da fare sono 3: nel
controller, nella vista e nel model.
Nel controller definisci:
def saveimage
@book=Book.find(params[:id])
if @book.update_attributes(params[:book])
if @book.save
flash[:notice]='Immagine caricata.'
redirect_to :back
end
else
flash[:notice]='Errore: Immagine non caricata.'
redirect_to :back
end
In una vista che sceglierai tu, generalmente è quella da cui effettui le
modifiche alla riga del db, scrivi:
<form
action="<%=url_for(:controller=>'admin',:action=>'saveimage',:id=>@book)-%>"
enctype="multipart/form-data" method="post">
<br />
<b><span style="color:red">Caricare Immagine:</span></b><br />
<input id="book_book" name="book[book]" size="30" type="file" />
<input name="commit" type="submit" value="Invia" />
</form>
Come vedi, nell'ultimo snippet, la vista fa riferimento alla tabella
book e all'item book, sembrerebbe quindi che nella tabella book esista
un item book di tipo "blob". Questo però non è vero perché l'item book è
virtuale e serve esclusivamente per richiamare il Model del "book".
Questo vuol dire che nel model del book dovrai inserire:
class Book < ActiveRecord::Base
....
def book=(book_field)
self.cover=book_field.read
end
il codice scritto ti dice che nella tabella book l'item di tipo "blob" è
cover!
Spero di esserti stato d'aiuto
Luigi
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list