私は次のモデルを持っています:
class User < ActiveRecord::Base
has_many :subscriptions, as: :subscribable
has_many :user_to_high_school_subscriptions
has_many :high_school_subscriptions, through: :user_to_high_school_subscriptions
def all_subscriptions
self.subscriptions + self.high_school_subscriptions.subscriptions
end
end
class UserToHighSchoolSubscription < ActiveRecord::Base
belongs_to :user
belongs_to :high_school_subscription
end
class HighSchoolSubscription < ActiveRecord::Base
has_many :user_to_high_school_subscriptions
has_many :users, through: :user_to_high_school_subscriptions
has_many :subscriptions, as: :subscribable
end
class Subscription < ActiveRecord::Base
belongs_to :subscribable, polymorphic: true
end
持っているすべてSubscription
のものを取得するための賢い方法はありますか?User
私は試した
u = User.first
subs = u.all_subscriptions
しかし、それはエラーになっています(undefined method subscriptions' for #<ActiveRecord::Relation:
)。has_many :subscriptions
で使用しようとすると窒息してHighSchoolSubscription
いると思いますuser
has_many :high_school_subscriptions
。(この行:) self.high_school_subscriptions.subscriptions
。
Railsのhas_manyにhas_manyを集約する方法はありますか?
ランニングレール3.2.1