ユーザーがUserお互いに「お気に入り」できるモデルがあります。私はそれ自体への参照への関係Favoritingとしてモデルを通じてこれを達成しています:has_many throughUser
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 風」に保ちたいと考えています。