[ruby-it] gestione eccezioni -> best practice
Marco Mastrodonato
m.mastrodonato a gmail.com
Mar 4 Ago 2009 11:01:26 CEST
Mattia Lipreri wrote:
>
> cos'altro dovrei tenere presente? Ci sono controindicazioni nel farlo?
>
> Grazie per i chiarimenti
Ciao,
secondo me "best practice" č molto soggettivo, ti posso dire come piace
a me gestire le "bad request" tramite routing:
come ultima riga, dopo le ultime due routes generiche inserisci:
#config\routes.rb
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
map.catch_all "*anything" , :controller => "home" , :action =>
"unknown_request"
nell'esempio si indirizza la bad request nel controller home dove per
esempio si puņ mostrare un messaggio e reindirizzare alla root:
#app\controllers\home_controller.rb
def unknown_request
respond_to do |format|
format.html do
flash[:error] = I18n.t :unknown_request
redirect_to root_path
end
format.xml { render :xml => {:root => I18n.t(:unknown_request) },
:status => :unprocessable_entity }
format.js
end
end
oppure se rindirizzare alla root non ti piace puoi scegliere di
indirizzarlo al suo precedente url o se non esiste alla 404:
page = Page.find_by_old_page(request.request_uri)
if page
redirect_to page.new_page
else
render :file => "#{RAILS_ROOT}/public/404.html", :layout => false,
:status => 404
end
Ciao
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list