Rails 5、filterrificを使用してアソシエーション属性の多相関連を持つモデルをフィルタリングします。仕事をするためにfilterifficRails 5はアソシエーションのアソシエーションを取得します
Flag
belongs_to :flaggable, polymorphic: true
belongs_to :reporter, class_name: "User"
Post
belongs_to :user
has_many :flags, as: :flaggable
Comment
belongs_to :user
has_many :flags, as: :flaggable
、それがモデルに定義されたスコープを必要とする、と私は、特定のユーザーに属するすべてのフラグを立てポストやコメントを取得しようとしています。 flag.flaggable.user.id
は正しく動作しますが、スコープを正しく取得できないようです。
scope :with_owner_name, lambda { |post_owner|
includes(flaggable: :user).where(:post => {:user => [*post_owner]})
}
または
scope :with_owner_name, lambda { |post_owner|
includes(flaggable: :user).where(:flaggable => {:user => [*post_owner]})
}
戻り
は熱心にポリモーフィックな関連読み込むことができません:
flaggableを、個別に同じ処理を行い、各flaggableモデルを含めるしようとしています。これを行う方法さえありますか?多相スコープに関するfilterrificのドキュメントでは何も見つかりません。代わりにFlagとPost/Commentユーザーとの関連付けを行う必要がありますか?