ページに表示したい情報をshowアクションに定義する
ページに表示したい情報をshowアクションに定義する
やりたいこと
1、ログインしているユーザーのnicknameを表示する
2、ログインしているユーザーの投稿を表示する
アソシエーションなしvar
class UsersController < ApplicationController def show @nickname = current_user.nickname @tweets = Tweet.where(user_id: current_user.id).page(params[:page]).per(5).order("created_at DESC") end end
アソシエーションありvar
class UsersController < ApplicationController def show @nickname = current_user.nickname @tweets = current_user.tweets.page(params[:page]).per(5).order("created_at DESC") end end
必要知識まとめ
・whereメソッド
whereメソッドはActiveRecordメソッド。モデル.where(条件)のように引数部分に条件を指定することで、テーブル内の条件に一致したレコードのインスタンスを配列型で取得できる。
whereメソッドを連続して記述することによって、複数の条件に一致したレコードを取得することもできる。
・アソシエーション
has_many 持っている
belongs_to 持たれている
今回はuserモデルにhas_manyを入れたので、Userモデルのインスタンス.tweetsと記述するだけでそのインスタンスが所持している値を取得することができる。