1月15日開催!現年収非公開で企業からスカウトをもらってみませんか?PR

転職ドラフトでリアルな市場価値を測る。レジュメをもとに、企業から年収とミッションが提示されます。

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails urlにユーザーのidが欲しい時!!

Posted at

#####ユーザー詳細画面から、そのユーザーがいいねした投稿一覧ページを表示させたいと思ったときえに、paramsでユーザーのidを受け取りたかったけどurlにidが入っていない!

そんなときどうやってurlにユーザーidを入れるのか?

###routes.rbでusersにdoをつけて入れ子構造にすればいい!

get 'user_likes' => 'users#user_likes' as: user_likes

最初は上記のようにユーザーがいいねした投稿一覧を表示するページのurlを作成していた
しかしこの書き方だと、rails routesしてみるとurlは

/users/user_likes

こうなっているはず。これだとidが入っていないためparamsでidを取得することはできない

そこで resources users のルーティング内に入れ子構造にしてurlを入れてみる

resources :users do
    get 'user_likes' => 'users#user_likes'
  end

こうすることでusersが親、作成したurlが子になり rails routesで確認してみると

/users/:user_id/user_likes

今度はこうなっているはず! :user_idが追加され、urlの中にユーザーのidを入れることができた

名前付きurlも user_user_likes となり、user_user_likes_pathで指定できる

コントローラーでメソッドを作り

@user = User.find(params[:user_id])

みたいな感じでurlからユーザーのidを受け取るといい
ちなみに、(params[:id])じゃないのは rails routes で確認したurlが /users/:user_id/user_likes で :user_id のため、ここが :id なら
paramsで取得する際は (params[:id])になる

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?