###実現したいこと
.joinと.whereを使って、下記のような条件を書きたい。
「FavoriteしたPostのstatusがnilの場合」
posts.statusがnilのポストを表示したいのですが、現状では非表示になってしまいます。
###コード
Controller
1class UsersController < ApplicationController 2 def favorites 3 @user = User.find_by(id: params[:id]) 4 @favorites = Favorite 5 .where(user_id: @user.id) #@user.idがfavoriteしている 6 .joins(:post).where("posts.status =?",nil) #favoriteしたPostのstatusがnil 7 .order(created_at: :desc) 8 end 9end
Model
1class Favorite < ApplicationRecord 2 belongs_to :user 3 belongs_to :post 4end
Log
1Favorite Load (0.6ms) SELECT "favorites".* FROM "favorites" INNER JOIN "posts" ON "posts"."id" = "favorites"."post_id" WHERE (posts.status =NULL) LIMIT ? [["LIMIT", 11]]
お分かりの方、是非宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/03 13:09
2020/01/03 13:14
2020/01/03 13:31