スポンサーリンク
Railsを使っていると、idが要らないにも関わらず、
Couldn't find User with 'id'〜〜〜
のようなエラーが表示されることがあります。idなどのパラメータが不要なページを無理やり出力しようとすると、表示されます。
ここで、routes.rbを見なおしてください。おそらく、
get '/users/hoge', to: 'users#hoge'
resources :users
のような記述が存在するかと思います。この部分を、
resources :users do
get :hoge, on: :collection
end
複数存在する場合は、
resources :users do
collection do
get 'hoge'
get 'hoge2'
end
end
と書き換えましょう。:collectionがミソで、これによりidを伴わないパスを認識してくれます。
私の場合は、同一人物が作成したデータのリストを出力するため(一種のフィルタリング)のために使用しました。つまり、current_user.idと、データベース中のuser_idが一致するものの抽出です。
Railsガイドにも、「searchアクションを作成する場合」の例が書いてあるので、意外と必要な知識だったのかも…?
ご覧いただきありがとうございました。
なにかご指摘などございましたら、コメント欄によろしくお願いします。