はじめに
例えば記事投稿アプリケーションなどで削除された記事に飛んだ場合に「指定されたページは存在しません」みたいなことってよくあると思います。
※以下Twitterから引用
今回は指定された記事がない場合のレンダリング方法について解説します。
環境
Ruby 2.6.3
Rails 6.0.3
本題
まずは見つからないページを指定された場合のルーティングを作成します
routes.rb
get "posts/post_deleted" => "posts#post_deleted"
次にビューに記述していきます
<p>このページは存在しません<p>
次にコントローラーに記述しますが、今回は特定の記事にアクセスした時の処理なのでshow
アクションにコードを追加していきます。
posts_controller.rb
def show
@post = Post.find_by(id: params[:id])
if @post == nil
render "posts/post_deleted"
return
end
end
def post_deleted
end
もっと良い方法があるなどあればメッセージをいただけると幸いです