質問: rails4で開発中。 現在練習でツイッターのような投稿サイトを作成しています。 そこで自分のマイページで自分の投稿だけを取得して表示させたいのですが、その表示方法が分かりません。 アソシエーションで誰がどの投稿をしたかマッピングはできたのですが、特定のユーザー(自分)だけの投稿を取得する方法が分かりません。 コントローラーへの定義方法。 Viewでの取得した投稿の表示方法。 どのように記述すればよいのでしょうか? 自分のuser_idを取得し、そのuser_idが投稿したtweet(tweet_id)をeachメソッドを使用して表示させる感じなのかなと思ったのですが、うまくできません。 アドバイスなどでも構いませんのでご教授いただけると助かります。 情報追加 AモデルとBモデルが1対多で結びつくように定義。 モデル ・Userモデル has_many :tweets ・Tweetモデル belongs_to :user 主キー:usersテーブル id 外部キー:tweetsテーブル user_id tweetが投稿された際にuser_idも保存されるようにコントローラーで定義。 以上のような関係性になっています。
回答: 自分のuser_idを取得し、そのuser_idが投稿したtweet(tweet_id)をeachメソッドを使用して表示させる感じなのかなと思ったのですが、うまくできません。 こういう記述はよくみますが、どういうコードを書いて、どううまくいかないのか(意図と違った結果が出るとか、こういったエラーが出るとか)を書かない回答者が困ると思います。 しかし、方針はあっています。 ってあれ?tweetってmodelじゃなくTopicというmodelなんですか? topic has_many :tweets なんですかね? ``` @tweets=Tweet.where(user_id: current_user.id) ``` をeachで回せばいいのでしょうと思ったのですが ``` @tweets=Tweet.joins(:topic).where(topics: {user_id: current_user.id}) ``` こうですかね?