質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1079閲覧

データの取得方法について

lapi

総合スコア58

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/03/01 06:59

編集2017/03/04 04:36

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も保存されるようにコントローラーで定義。

以上のような関係性になっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2017/03/01 08:06

どんなモデルがあって、その関係性はどのようになっていますか?
lapi

2017/03/01 14:37

モデルと関係性の情報追加致しました。他にも何かあれば仰ってください。
guest

回答1

0

ベストアンサー

自分のuser_idを取得し、そのuser_idが投稿したtweet(tweet_id)をeachメソッドを使用して表示させる感じなのかなと思ったのですが、うまくできません。
こういう記述はよくみますが、どういうコードを書いて、どううまくいかないのか(意図と違った結果が出るとか、こういったエラーが出るとか)を書かない回答者が困ると思います。

しかし、方針はあっています。
ってあれ?TweetってmodelじゃなくTopicというmodelなんですか?
topic has_many :tweets
なんですかね?

ruby

1@tweets=Tweet.where(user_id: current_user.id)

をeachで回せばいいのでしょうと思ったのですが

ruby

1@tweets=Tweet.joins(:topic).where(topics: {user_id: current_user.id})

こうですかね?

投稿2017/03/04 03:58

moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lapi

2017/03/04 04:42

modelに関しては記載間違いです。申し訳ありません。 修正させて頂きました。 そしてご回答頂いた@tweets=Tweet.where(user_id: current_user.id)で解決することもできました! ありがとうございます。 今後、回答者の方に分かりやすいようコードや結果なども記述すように致します。 この度はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問