2010-08-27 18 views
10

L'impostazione di paperclip con S3 nel mio ambiente di sviluppo Linux era un gioco da ragazzi - tutto funziona immediatamente. Tuttavia, non riesco a farlo funzionare su Heroku.manca il modello richiesto attr_accessor per "photo_file_name" durante il caricamento con paperclip e S3 su heroku

Quando provo a fare un upload, il registro mostra:

Processing ItemsController#create (for 72.177.97.9 at 2010-08-26 16:35:14) [POST] 
    Parameters: {"commit"=>"Create", "authenticity_token"=>"0Hy3qvQBHE1gvFVaq32HMy2ZIopelV0BHbrSeHkO1Qw=", "item"=>{"photo"=>#<File:/home/slugs/270862_4aa601b_4b6f/mnt/tmp/RackMultipart20100826-6286-1256pvc-0>, "price"=>"342", "name"=>"a new item", "description"=>"a new item", "sold"=>"0"}} 

Paperclip::PaperclipError (Item model missing required attr_accessor for 'photo_file_name'): 

ho trovato un post sul blog che fa riferimento questo errore, e ha detto di aggiungere questo per il mio modello:

attr_accessor :photo_file_name 
attr_accessor :photo_content_type 
attr_accessor :photo_file_size 
attr_accessor :photo_updated_at 

Questo fa sì che il modello mancante richieda attr_accessor per l'errore "photo_file_name", ma non funziona ancora. Vedi my other question per i dettagli. Come ho capito che con le linee attr_accessor aggiunte al mio modello i caricamenti falliscono anche sul mio sistema di sviluppo, sospetto che non sia la risposta giusta.

risposta

30

Trovato il problema: necessario per aggiornare il database.

Heroku run rake: db: migrate

Heroku riavviare

avevo fatto quello che pensavo avrebbe compiuto la stessa cosa già:

Heroku rake db: schema : carico

ma forse t cappello non funziona o qualcosa è andato storto nel processo.

+0

È possibile che si verifichino problemi durante l'esecuzione. 'heroku run rake: db: migrate' Se lo fai, esegui invece' heroku run rake db: migrate' Then 'heroku restart' – kearney927

+0

Non usare questa riga: heroku rake db: schema: load. Questo cancellerà tutti i tuoi dati dalle tabelle! Fai un backup se vuoi ottenere questo! – EM923

0

Bene, questo messaggio sembra essere dovuto al fatto che le colonne mancano. Prova creare una migrazione creare le colonne:

class AddPhotoToEvent < ActiveRecord::Migration 
    def change 
    add_column :events, :photo_file_name, :string 
    add_column :events, :photo_content_type, :string 
    add_column :events, :photo_file_size, :integer 
    add_column :events, :photo_updated_at, :datetime 
    end 

fine

questo lavoro per me, qui ho una tabella eventi con foto

3

errore come questo si verifica se si crea sbagliato tipo di colonna nella migrazione. Quando si definisce la nuova migrazione della tabella per paperclip, è necessario specificare t.attachment :name insted di t.string :name. O add_attachment :table, :name quando aggiungi una nuova colonna di graffette nella tabella esistente. E ora non è necessario aggiungere questi attributi nel modello attr_accessor.

Problemi correlati