2011-08-18 11 views
6

Jestem całkiem nowy dla szyn i wydaje mi się, że mam problem z klejnotem spinacza. Zainstalowałem klejnot i działa dobrze w rozwoju (localhost: 3000), ale kiedy jestem uruchomiony na serwerze heroku, z jakiegoś powodu nie chce załączać plików, a aplikacja się zepsuje (błąd 500 strony).spinacz działający w fazie rozwoju, ale nie działający w produkcji?

Oto proces, który uruchomiłem ... Przekazałem mój plik do heroku, Heroku uruchomił rake db: migrate (aby dodać migracje spinacza papieru), a następnie uruchomiłem restart Heroku (aby ponownie uruchomić aplikację z nowymi migracjami). To nie pomagało.

Oto kod, który mam za spinacz:

modelu user.rb: widok

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 

Ponownie, z jakiegoś powodu działa świetnie w rozwoju, ale rozpada się w produkcji. Wszelkie wskazówki byłyby bardzo cenne ... Po prostu nie mogę tego zrozumieć i to jest dość frustrujące. Dziękuję bardzo za poświęcony czas i każdą pomoc!

Odpowiedz

3

W Twoim modelu.

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

W s3.yml w config reż:

development: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

    production: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

Następnie przejdź zarejestruj za wiadrze na Amazon S3: http://aws.amazon.com/s3/

+0

Dziękuję bardzo za to ... Na pewno pójdę i to zrobię. Dziękuję Ci! –

1

Możliwe, że masz kilka problemów. Jednak pierwszą rzeczą jest to, że nie możesz pisać do systemu plików na Heroku. Będziesz musiał zaimplementować inny mechanizm przechowywania, taki jak s3. Możesz przeczytać o tym ograniczeniu tutaj: http://devcenter.heroku.com/articles/read-only-filesystem

+0

Dzięki bardzo za to, Jake! Naprawdę to doceniam ... Nie wiedziałem, że nie mogę przesłać do Heroku, ale z perspektywy czasu ma to sens. Dziękuję bardzo, stary !! –