こんにちは。
今回は、お気に入り機能を実装しているのですが、もらったお気に入りの数を表示するやり方がなかなか理解できません。
**「User」「Post」「Favorite」**の3つのテーブルがあります。
class User < ActiveRecord::Base has_many :posts has_many :favorite end class Post < ActiveRecord::Base belongs_to :user has_many :favorites end class Favorite < ActiveRecord::Base belongs_to :user belongs_to :post end
User←→Post←→Favorite ↓ ↑ →→→→→→→→→→
ここの投稿されたPostに対するFavoriteの数を取得したいです。
このやり方ですと、上記のモデルでUserがFavoriteすることはできました。
class FavoriteController < ApplicationController def create @post = Post.find(params[:post_id]) favorite = current_user.favorites.build(post_id: @post.id) favorite.save redirect_to root_url end end
UserがFavoriteした数はなんとか取得できるのですが、
Other_Userが自分の投稿したPostに対して、Favoriteされた数が取得できません。
下記のようにした場合、UserがFavoriteしたPostが出てくるのはわかりました。
class User < ActiveRecord::Base has_many :posts has_many :favoritess has_many :favorite_posts, through: :favorites, source: :post end class Post < ActiveRecord::Base belongs_to :user has_many :favorites end class Favorite < ActiveRecord::Base belongs_to :user belongs_to :post end
自分が投稿したPostに対して、Favoritesされた数の取得がわかりませんでした。
申し訳ございません
回答1件
あなたの回答
tips
プレビュー