ユーザーがUser
お互いに「お気に入り」できるモデルがあります。私はそれ自体への参照への関係Favoriting
としてモデルを通じてこれを達成しています:has_many through
User
class User < ActiveRecord::Base
has_many :favoriting
has_many :favorites, through: :favoritings, source: :favorited
has_many :favoriteds, class_name: "Favoriting", foreign_key: "favorited_id"
has_many :favoriters, through: :favoriteds, source: :user
...
end
class Favoriting < ActiveRecord::Base
belongs_to :user
belongs_to :favorited, :class_name => 'User'
...
end
これはすべてうまくいきます。u.favorites
ユーザーのお気に入りu.favoriters
を取得したり、お気に入りに登録したユーザーを取得したりできますu
。u.favorites_count
お気に入りの数を取得する こともできます。
u.favoriters_count
しかし、お気に入りに登録しているユーザーの数を取得することはできませんu
。
このタイプの DB 関係のための組み込みメソッドへのアクセスがあるかどうか、またはこのタイプの DB 関係でfavoriters_count
さえ、何か考えはありますか? favoriteds_count
自分でコードを書くこともできますが、コード ベースはできる限りシンプルで「Rails 風」に保ちたいと考えています。