Qual è il modo migliore per emettere una risposta 404 da un'azione del controller di rotaie?Come si emette una risposta 404 dall'azione di un controller di rotaie?
risposta
Questo sembra buona ...
# Rails 2 and below
render :file => "#{RAILS_ROOT}/public/404.html", :status => 404
# Rails 3 and up
render :file => "#{Rails.root}/public/404.html", :status => 404
[Questa risposta ] (http://stackoverflow.com/questions/2385799/how-to-redirect-to-a-404-in-rails#answer-4983354) su un'altra domanda mi sembra più potente. Bonus: include il codice di prova :-) – webmat
Usa Rails.root.to_s invece di RAILS_ROOT nelle versioni successive dei binari – deb
@deb che differenza fa? L'interpolazione delle stringhe chiamerà implicitamente "to_s". –
render :file => '/path/to/some/filenotfound.rhtml',
status => 404, :layout => true
Questo è un po 'più bello ... –
Nel ApplicationController definire un metodo come:
def render_404
render :file => "#{RAILS_ROOT}/public/404.html", :status => 404
end
È inoltre possibile
raise ActiveRecord::RecordNotFound
eccezione.
per esempio usando '.find_by!' O '.first!' –
modo seguente è stata la migliore per me:
raise ActionController::RoutingError.new('Not Found')
o semplicemente
raise ActionController::RoutingError, 'Not Found'
O ci sono altre soluzioni: How to redirect to a 404 in Rails?
Lo stesso ma più semplice: 'solleva ActionController :: RoutingError,' Not Found'' –
Se si voleva emanare un codice di stato su un reindirizzamento (ad esempio 302), è possibile inserire questo in routes.rb
:
get "/somewhere", to: redirect("/somewhere_else", status: 302)
.
Tuttavia, ciò funzionerebbe solo per il reindirizzamento, non per il caricamento diretto di una pagina.
- 1. Come profilare un controller di rotaie che restituisce una risposta JSON con rack-mini-profiler?
- 2. Come si crea un controller 404 utilizzando Spring Boot?
- 3. Come si emette un System.Linq.Expression?
- 4. Come interrompere l'esecuzione di un controller di rotaie?
- 5. Socket.io emette dai controller Express
- 6. Ottieni modello o 404 su Rotaie
- 7. rotaie 3 form_for non emette nulla
- 8. Handshake WebSocket: codice di risposta inatteso: 404
- 9. Come si verifica un caricamento di file in rotaie?
- 10. Come testare una risposta 404 attesa con JMeter
- 11. Perche 'si ottengono una risposta 404 dal mio post in Web API
- 12. Come si crea una pagina 404?
- 13. rotaie 3 - Come rendere un PARZIALE come risposta JSON
- 14. Come ottenere la risposta di un controller da un altro controller?
- 15. rotaie risposta json con compressione gzip
- 16. Sollevare un avviso controller rotaie senza redirect
- 17. Come determinare uno stato di risposta 404 quando si utilizza HttpClient.GetAsync()
- 18. $ emette o $ trasmette un evento da un controller a una direttiva AngularJS
- 19. Zend 2: Come lanciare un errore 404 dal controller
- 20. Come si restituisce un modello di rendering di ramoscello come parte di una risposta JSON?
- 21. Come posso inviare una risposta json nel controller symfony2
- 22. Trigger 404 nel controller Spring-MVC?
- 23. 404 su controller in gruppi esterni
- 24. Come si uccide un server webrick di rotaie?
- 25. Includendo l'url.py di un'app di Django si ottiene un 404
- 26. Ottieni le impostazioni di ambiente nel controller di rotaie
- 27. metodo non definito `devise_for 'nel controller di azioni di rotaie
- 28. Come si arrende un metodo di supporto a un blocco in rotaie 3?
- 29. rotaie redirect_to formato html invia la risposta in js
- 30. Come creare una risposta vietata in Symfony2?
possibile duplicato di [Come reindirizzare a un 404 in Rails?] (Http://stackoverflow.com/questions/2385799/how-to-redirect-to-a-404-in-rails) –