投稿はユーザーに属し、ユーザーは多くの投稿を持っています。
投稿もトピックに属し、トピックには多くの投稿があります。
class User < ActiveRecord::Base
has_many :posts
end
class Topic < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :topic
end
これは非常にシンプルで設定が非常に簡単ですが、トピックを表示するときは、そのトピックのすべての投稿だけでなく、その投稿を作成したユーザーのuser_nameとuser_photoも必要です。ただし、これらの属性はユーザーモデルに保存され、トピックに関連付けられていません。では、どうすればそれを設定できますか?
Postモデルにはユーザー用とトピック用の2つの外部キーがあるので、おそらくすでに呼び出すことができますか?
または、おそらくこれは、関連付けによるある種の「一方向」のhas_manyです。Postが結合モデルであり、トピックがhas_many:users、:through =>:postsであるように。しかし、これの逆は真実ではありません。ユーザーのようにhas_many:topicsはありません。
それで、これはhas_many:thoughアソシエーションである必要さえありますか?コントローラーが特定のトピックに対して投稿とその投稿のユーザーの両方を呼び出すように見えるかについて、私は少し混乱していると思います。
編集:真剣に、すべてのことを検討してくれてありがとう。私はコントローラーに彼のコードを使用したので、talの答えを選びました。ただし、代わりにj。またはtimを簡単に選択することもできます。両方ともありがとう。これは非常に簡単に実装できました。今日はレールとの恋愛の始まりかもしれないと思います。