Graffetta e file temporaneo con Rails
-
21-09-2019 - |
Domanda
Sto cercando di scrivere un'applicazione ferroviaria in cui gli utenti possano caricare immagini, ma Paperclip non sembra funzionare per me.
Ho seguito tutti i passaggi di base (aggiunto has_attached_file, migrazione, creazione del modulo in più parti) ma continuo a ricevere lo stesso errore ogni volta che provo a caricare un'immagine:
non è possibile convertire nil in Integer
Guardando la cima della pila
...rails3/lib/paperclip/processor.rb:46:in `sprintf'
...rails3/lib/paperclip/processor.rb:46:in `make_tmpname'
.../ruby-1.9.2-head/lib/ruby/1.9.1/tmpdir.rb:154:in `create'
.../ruby-1.9.2-head/lib/ruby/1.9.1/tempfile.rb:134:in `initialize'
Sembra che il problema sia nel file temporaneo.
Il mio codice:
_form.rb
<%= form_for @high_school, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
...
<div class="field">
<%= f.file_field :photo %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
modello/high_school.rb
...
validates_length_of :password, :minimum => 4, :allow_blank => true
has_attached_file :photo
has_many :students
...
È un problema noto?Fondamentalmente ho seguito le istruzioni da github alla lettera.
Il mio ambiente:Rails3 e Ruby 1.9.2dev
Grazie!
Soluzione
Non credo che paperclip supporti ancora Ruby 1.9.
Prova a passare a Ruby 1.8.7 e vedi se il problema persiste.
Altri suggerimenti
devi applicare questa patch http://github.com/dwalters/paperclip/commit/2a85add5f102db8773518f8ac30f7e2337bf7d13 per far funzionare la graffetta sulla versione 1.9.2, verificare l'errore impossibile convertire nil in numero intero
Questo problema è stato ora risolto nella versione 2.3.3 di paperclip.Vedi questo impegno:https://github.com/thinkbot/paperclip/commit/1bcfc14388d0651c5fc70ab9ca3511144c698903
Qui qualcuno ha un problema simile al tuo con Paperclip su Ruby 1.9 (ma non esiste una soluzione).Quindi probabilmente è un problema con la versione Ruby.