読者です 読者をやめる 読者になる 読者になる

存在しないデータのページにアクセスした場合は 404 NotFound に飛ばしたい

find_by_* メソッドには例外を投げるメソッドがある

こういう action があったとする

# config/routes.rb
resources :users
# app/controllers/users_controller.rb
class UsersController < ApplicationController
  def show
    @user = User.find_by_name(params[:name])
  end
end
この部分!
@user = User.find_by_name(params[:name])
# => nil
@user = User.find_by_name!(params[:name])
# ActiveRecord::RecordNotFound: ActiveRecord::RecordNotFound

Rails は action で ActiveRecord::RecordNotFound が発生すると 404 と紐付けてくれるので、下のケースでは 404 ページに飛ばすことができる。
リソース必須なページはこれを使うと良い!