2011-08-18 22 views
6

Sono abbastanza nuovo per le rotaie e sembra avere un problema con la gemma paperclip. Ho installato la gemma e funziona bene in fase di sviluppo (localhost: 3000) ma quando lo sto eseguendo sul server heroku, per qualche motivo non vuole allegare file e l'app si interrompe (pagina errore 500).graffetta che funziona nello sviluppo ma non funziona in produzione?

Qui è il processo mi sono imbattuto ... Ho spinto il mio file di Heroku, Heroku corse rake db: migrate (aggiungere migrazioni graffetta), e poi mi sono imbattuto Heroku riavviare (per riavviare l'applicazione con nuove migrazioni). Questo non sembrava aiutare.

Ecco il codice che ho per graffetta:

modello user.rb: vista

has_attached_file :avatar, 
        :styles => {:small => "70x70>"}, 
        :url => "https://stackoverflow.com/users/:attachment/:id/:style/:basename.:extension", 
        :path => ":rails_root/public/users/:attachment/:id/:style/:basename.:extension" 
    validates_attachment_size :avatar, :less_than => 500.kilobytes 
    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png'] 

edit_form.html.haml:

= form_for (@user || User.new), :html => { :multipart => true } do |f| 
    ...  
    .profile_picture.text_field 
    = image_tag current_profile.avatar.url(:small) 
    %br 
    = f.file_field :avatar 

Anche in questo caso, per qualche motivo funziona in grande sviluppo, ma si rompe in produzione. Qualsiasi suggerimento sarebbe molto apprezzato ... Non riesco a capirlo ed è piuttosto frustrante. Grazie mille per il tuo tempo e ogni aiuto!

risposta

3

Nel tuo modello.

has_attached_file :picture, 
        :styles => {:large => "275x450>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "appname/:attachment/:style/:id.:extension" 

In s3.yml nella vostra directory di configurazione:

development: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

    production: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

Poi vai di iscrizione per un secchio a Amazon S3: http://aws.amazon.com/s3/

+0

grazie mille per questo ... sicuramente andrò a farlo. Grazie! –

1

Potresti avere qualche problema. Tuttavia, il primo è che non puoi scrivere sul file system su Heroku. Dovrai implementare un meccanismo di archiviazione diverso come s3. Puoi leggere questa limitazione qui: http://devcenter.heroku.com/articles/read-only-filesystem

+0

Grazie tanto per questo, Jake! Lo apprezzo davvero ... non sapevo che non potevo caricare su Heroku, ma ha senso in retrospettiva. Grazie mille, amico !! –

Problemi correlati