Как заставить это действие бросить 404? - PullRequest
2 голосов
/ 14 марта 2012

У меня есть следующее действие:

def show
  @video = @commentable = @favoritable = Video.find_by_key(params[:key])

  Video.increment_counter(:views_count, @video.id)
end

Но прямо сейчас, если find_by_key не находит запись, он выдает RuntimeError (Called id for nil).

Так, как я могу заставить это действие бросить 404, если запись не найдена?

Я использую Rails 3.2.1.

1 Ответ

13 голосов
/ 14 марта 2012

Добавьте это, прежде чем пытаться увеличить, используя значение @video.id.

raise ActiveRecord::RecordNotFound if @video.blank?

Или используйте версию взрыва find_by_key, которая поднимет ActiveRecord::RecordNotFound, если она не найдена.

Video.find_by_key!(params[:key])

...