SORU
5 Mart 2010, Cuma


Nasıl Raylar 404 yönlendirmek?

'Sahte' Raylar 404 sayfası. PHP, sadece hata kodu ile ilgili bir başlık gibi göndermek istiyorum:

header("HTTP/1.0 404 Not Found");

Nasıl bu Raylar ile yapılır?

CEVAP
13 ŞUBAT 2011, Pazar


404 kendinizi işlemek yok, nedeni yok; Raylar bu işlev zaten inşa etti. Eğer bir 404 sayfası göstermek istiyorsanız, bu gibi ApplicationController render_404 yöntem (ya da dediğim gibi not_found) oluşturmak:

def not_found
  raise ActionController::RoutingError.new('Not Found')
end

Raylar da ** 9, ActiveRecord::RecordNotFound aynı şekilde işler.

Bu iki şeyi daha iyi yapar:

1) Raylar kullanıyor' rescue_from işleyicisi 404 sayfa işlemek için inşa, ve 2) kod yürütülmesini, sana güzel şeyler yapmasına izin vermek olabilir:

  user = User.find_by_email(params[:email]) or not_found
  user.do_something!

çirkin koşullu ifadeleri yazmak zorunda kalmadan.

Bir bonus olarak, aynı zamanda çok kolay testler taşıyınız. Rspec entegrasyon testi örneğin,:

# RSpec 1

lambda {
  visit '/something/you/want/to/404'
}.should raise_error(ActionController::RoutingError)

# RSpec 2 

expect {
  get '/something/you/want/to/404'
}.to raise_error(ActionController::RoutingError)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013
  • tychoadragmire

    tychoadragmi

    20 Mart 2006