私はアプリケーション内に多相関連があり、グループ内のユーザー数を数え、各グループにユーザーをリストしたいと考えています。どうすればこれを達成できますか?私はUser.groups.all
とUser.all.groups
が、これらの作品のどれを呼び出すことができないのですが、現時点で Rails多型関連のレコード数をカウントする
class Group < ApplicationRecord
has_many :user_groups
has_many :users, through: :user_groups
end
class User < ApplicationRecord
has_many :user_groups
has_many :groups, through: :user_groups
end
class UserGroup < ApplicationRecord
belongs_to :user
belongs_to :group
end
私は私が
User.first.groups
を呼び出すことができます。
と呼ばれるのでしょうか?あなたのソリューションは私のために働いた。私は考え過ぎていると思う。 –
これは多対多の関係です。多態性 - モデルは効果的に複数の他のモデルに属します。例 - イメージはユーザーまたはドキュメントに属することができます。したがって、 'User'と' Document'の多相性を表すImageで 'imageable'と呼ばれる層があるかもしれません。 – kiddorails
もう少し正確に言うと、議論されているような多相関連では、 'image'オブジェクトは他の一つのオブジェクトにしか属しません。しかし、そのオブジェクトは任意の 'クラス 'になることができます。あなたが言うように、例えば、 'User'や' Document'のインスタンスです。 'belongs_to:imageable、polymorphic:true'、' imageable'、 'imageable ='は 'image'オブジェクトで利用可能なメソッドです。これは取得/設定を可能にします。 – jvillian