📘

showページへのルーティングにslugを渡したい

2022/04/06に公開

pageモデル - name/slug/contentカラムを持つ

pages_controller.rb
def show
  @page = Page.find_by(slug: params[:slug])
end

slugをパラメーターにして、pageモデルから適切なページをインスタンス変数に入れる

スタンダードにルーティングを作ると

routes.rb
resources :pages, param: :slug, only: :show

生成されるURLはpages/:slug
今回は、pagesの部分は省略して/:slugでアクセスできるようにしたい

routes.rb
resources :pages, param: :slug, path: '/', only: :show

ググりまくった結果、これで/:slugのURLが生成できた!

Discussion

ログインするとコメントできます