Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 23 février 2011

De Rails 3.0.1 à Rails 3.0.3 : undefined method `original_path'

Vous avez un message du type : 

NoMethodError (undefined method `original_path' for #<ActionDispatch::Http::UploadedFile:0xb62975f0>):

Ne cherchez plus : pour les objets de type ActionDispatch::Http::UploadedFile , la méthode original_path (utilisé lors de l'upload de fichier avec rails) n'existe plus il faut donc utiliser original_filename (la modification impacte le passage de la version de rails 3.0.1 à rails 3.0.3)

J'espère que ça sauvera quelques vies !

mercredi 2 décembre 2009

RubyOnRails et les erreurs 500 (Internal Server Error) personnalisées et dynamiques

RubyOnRails

Vous en avez marre des vilaines erreurs 500 des applications rails ? Non je ne vais pas vous montrer comment utiliser CSS avec le fichier "public/500.html". BIen mieux : lever les exceptions dans une méthode !

Par exemple vous pouvez mettre ça dans application_controller.rb.

rescue_from ActionController::RoutingError, :with => :my_error
rescue_from ActionController::UnknownAction, :with => :my_error
rescue_from NoMethodError, :with => :my_error

def my_error(exception)
#le code que vous voulez mettre (redirect_to ou render)
end

Vous pouvez aussi analyser le contenu de exception et vous prévenir par mail...(attention au spam...). Du coup vous pourrez utiliser le layout de votre application pour faire le rendu de "my_error".