0
0

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.

1-nの関連モデルでnのデータを取得する場合は1のモデルから取ろうという話

Last updated at Posted at 2020-11-30

前提

※Railsでの話ですが、他のライブラリにも同じことが言えると思います

以下のモデルがあります
User
UserPost
※1-nの関係

以下のURLがあります

/posts # 自分の投稿一覧を取得
/users/:user_id/posts # user_idの投稿一覧を取得

Controllerの処理

/postsの例

UserPost.where(user_id: @current_user.id)....

こんな感じでやったりする人がいますが、これはだめです。
こうしましょう

@current_user.user_posts...

UserPostからとるようにすると、なんかの手違いでwhere条件を消してしまったりして、userの条件が外れる可能性があります。
userからとるようにしておけば、必ずそのユーザーで絞り込まれるので、その事故を防ぐことができます

/users/:user_id/postsの例も理由は同じです

結論

必ず親側のモデルからデータをとるようにするクセをつけるといいと思います

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?