Rails id以外でのリクエスト処理
注意
Railsで初めてのまともなものを作ったので、
ベストプラクティスは他にあるかもしれないです
ご存じの方はコメントでご指摘ください
本題
リクエストをid以外のもので出したくてそのやり方について軽くまとめました
ルーティングの設定
routes.rb
Rails.application.routes.draw do resources :users, param: :name end
resources :users の後に param: :指定したいもの
リクエストで指定したいものを記述
次はモデル
user.rb
class User < ApplicationRecord def to_param name end end
to_param 関数を定義
これはviewで楽するためとか書いている記事を読んだので、
自分はviewが必要ないものだったので定義していなかったのですが、
これがないとエラー吐き出してきたので記述
最後にコントローラ
users_controller.rb
class UsersController < ApplicationController def show user = User.find(name: params[:name]) end end
nameでリクエストをしたかったので、自分はnameになっています
find(params[:name]) と書いている記事があり、最初はそのように書いていただが、
これもエラーを吐かれたので、上述のように書いた