Rails 2: Model.find(1) gives ActiveRecord error when id 1 does not exist

后端 未结 8 1375
無奈伤痛
無奈伤痛 2020-11-28 12:03

I am using Rails 2.3.5 and in that if I give Model.find(1) and if 1 is not in the database, it returns ActiveRecord error. Should it just be returning nil

8条回答
  •  有刺的猬
    2020-11-28 12:24

    throwing the exception is the expected behavior.

    in fact in the normal course of events if you let the exception go unhandled your rails server will return the proper 404 page not found error.

    if you'd like for it to return nil you can catch it yourself:

    begin
      @model = Model.find(id_provided)
    rescue ActiveRecord::RecordNotFound => e
      @model = nil
    end
    

提交回复
热议问题