whereメソッドとアソシエーション
userとtweetモデルが存在して、userのshowページでuser個人の情報を取得しつつ、userが投稿したtweetすべてを取得する方法。 whereメソッドを用いる。 @user.idが1の場合、user_idが1のtweetを取得できる。
def show @user = User.find(params[:id]) @tweets = Tweet.where(user_id: @user.id) end
上記のようにwhereメソッドを用いてもよいが、モデル間のアソシエーションを用いるともっと簡単に記述できる。
class User < ActiveRecord::Base has_many :tweets end
def show @user = User.find(params[:id]) @tweets = @user.tweets #user.rbにhas_many :tweetsを追加したので、@userに関連したtweetをすべて取得できる。