find(id) に find_by_id(id) の挙動を期待していたので以下のようなコードを書いてしまっていた。 @item = Item.find(params[:id]) if params[:id] render(:nothing => true, :status => '404 Not Found') unless @item これだとレコードが見つからなかったときにサーバーエラー(ステータスコード 500)になってしまう。 そうならないためには以下のコードが正しい。 @item = Item.find_by_id(params[:id]) if params[:id] render(:nothing => true, :status => '404 Not Found') unless @item 奥が深い。 参考 ActiveRecord のお勉強 – Rails で行こう