Raylar denetleyicisi tüm özel durumları yakalamak | Netgez.com
SORU
12 EYLÃœL 2010, Pazar


Raylar denetleyicisi tüm özel durumları yakalamak

Orada bir şekilde bu gibi raylar denetleyicisi tüm uncatched istisnaları yakalamak için

def delete
  schedule_id = params[:scheduleId]
  begin
    Schedules.delete(schedule_id)
  rescue ActiveRecord::RecordNotFound
    render :json => "record not found"
  rescue ActiveRecord::CatchAll
    #Only comes in here if nothing else catches the error
  end
  render :json => "ok"
end

Teşekkür ederim

CEVAP
21 Temmuz 2011, PERÅžEMBE


Ayrıca rescue_from yöntemi tanımlayabilirsiniz.

class ApplicationController < ActionController::Base
  rescue_from ActionController::RoutingError, :with => :error_render_method

  def error_render_method
    respond_to do |type|
      type.xml { render :template => "errors/error_404", :status => 404 }
      type.all  { render :nothing => true, :status => 404 }
    end
    true
  end
end

Amacınız ne bağlı olarak, her kumanda için ayrı ayrı DEĞİL, özel durumları göz önünde bulundurmak isteyebilirsiniz. Bunun yerine, özel durumlar için yanıtları tutarlı bir şekilde yönetmek için exception_handler mücevher gibi bir şey kullanın. Bir bonus olarak, bu yaklaşım aynı zamanda katman katman oluşan özel durumlar, uygulama görmüyor isteği ayrıştırma veya veritabanı bağlantı hataları gibi işleyecektir. exception_notifier gem de ilginizi çekecektir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • DanceOn

    DanceOn

    6 Mayıs 2006
  • PhoneArena

    PhoneArena

    7 NÄ°SAN 2006