我有以下行动:
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。
答案 0 :(得分:13)
在尝试使用@video.id
的值增加之前添加此项。
raise ActiveRecord::RecordNotFound if @video.blank?
或者使用find_by_key
的爆炸版本,如果找不到则会ActiveRecord::RecordNotFound
。
Video.find_by_key!(params[:key])