user_id
およびcomment_id
のような関連IDの代わりに、関連付けを使用してすべての関連レコードを取得する方法を理解できません。今、私はそれらのそれぞれにこれらのコメントを取得したいと思いますアソシエーションを使用してすべての関連レコードを取得
@user = User.find_by_id(params[:id])
@comments = @user.comments
: は、私は三つのモデルUser, Post, Comment, Image
や団体が
User
has_many :posts
has_many :comments
Post
belongs_to :user
has_many :comments
has_many :images
Comment
belongs_to :user
belongs_to :post
Image
belongs_to :post
ている今、私は、ユーザーのuser_id
を持っているとして、ユーザーを見つけることがあるとしましょう彼らのポストの関連する記録。私はすべてのコメントに対応するpost_id
の代わりに投稿ハッシュをしたい。 これを1回のクエリで実行します。 ご意見がありましたら、私にお尋ねください。
は '@のuser.comments.first.post'を試してみて、それが' POST'インスタンスを返します。このアプローチの中で[N + 1 query'](https://www.sitepoint.com/silver-bullet-n1-problem/)の問題に気をつけてください。これはあなたの質問の範囲外です。 – mudasobwa
ご心配ありがとう@mudasobwa。しかし私の質問は、post_idの代わりに各コメントに対応する投稿記録を既に持っているコメント収集をしたいということです。私はそれぞれの投稿を得るためにループを作りたいとは思わない –