Wie gehe ich mit ActiveRecord :: RecordNotFound im Rails-Controller um?
Ich habe eine App mit Benutzern und Ereignissen. Jeder Benutzer hat mehrere Ereignisse. Wenn ein Benutzer ein bestimmtes Ereignis sehen möchte, gelangt er zu folgender Aktion:
def show
begin
@userEvents = current_user.event
@event = @userEvents.find(params[:id])
rescue ActiveRecord::RecordNotFound
redirect_to :controller => "main", :action => "index"
end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @event }
end
end
Wenn das Ereignis für den Benutzer nicht gefunden wird, bedeutet dies, dass er mit der URL gespielt hat und das Ereignis, das er abzurufen versucht, nicht ihm gehört. Ich möchte ihn entweder auf die Hauptseite umleiten oder nur die Seite mit dem Fehler anzeigen, dass das Ereignis nicht gefunden wurde. Wenn ich versuche, den obigen Code auszuführen, wird dieser Fehler ausgelöst:
AbstractController::DoubleRenderError in EventsController#show
Was ist der beste Weg, um dies zu beheben?