1

J'utilise Rails 3, Uploadify, pour envoyer des images à S3Rails 3 -NoMethodError (méthode non définie original_filename

En ce moment, toutes les images étant téléchargement ont le MIME:. Application/octet-stream

Je voudrais corriger cela, mais je reçois l'erreur suivante:

NoMethodError (undefined method `original_filename' for #<ActiveSupport::HashWithIndifferentAccess:0x107c81998>): 
    app/models/photo.rb:29:in `upload_file=' 
    app/controllers/photos_controller.rb:15:in `upload' 
    app/middleware/flash_session_cookie_middleware.rb:14:in `call' 

Je pense que cela est parce que tous les tutoriels là-bas ne sont pas Rails 3 convivial tout le monde a des idées Voici le code.?:

# Controller 

def create 
    @photo = Photo.new(:upload_file => params[:photo][:image]) 
    ... 
end 

# Model 

class Photo < ActiveRecord::Base 
    require 'mime/types' 
    ... 
    def upload_file=(data) 
    data.content_type = MIME::Types.type_for(data.original_filename).to_s 
    self.image = data 
    end 
end 

Répondre

1

Je ne suis pas familier avec Uploadify, mais il semble être juste un générateur javascript ...

vous passez une valeur params en tant que « données » pour # upload_file =. Ensuite, vous appelez une méthode (#original_filename) sur params [: photo] [: image]. Rails dit que params [: photo] [: image] n'a pas une telle méthode.

Existe-t-il une sorte de classe File dans 'mime/types'? Devriez-vous créer cet objet Fichier en premier?

file = File.new(params[:photo][:image]) 

puis changer que les fichiers d'attributs:

file.content_type = ... 

EDIT:

Utilisez-vous la pierre précieuse de paperclip? Le tutoriel que vous utilisez utilise un trombone. Donc dans "@ asset.file_content_type = MIME :: Types.type_for (@ asset.original_filename) .to_s", je pense que @asset est une instance de la classe File de paperclip qui a une méthode #original_filename. Cependant, je ne vois pas de méthode # file_content_type =() dans les documents paperclip.

+0

merci mais je ne sais pas ... Im essayant de suivre le tutoriel ici: http://railstips.org/blog/archives/2009/07/21/uploadify-and-rails23/ – TheExit