Module: Caffeinate::ActiveRecord::Extension
- Defined in:
- lib/caffeinate/active_record/extension.rb
Instance Method Summary collapse
-
#caffeinate_subscriber ⇒ Object
Adds the associations for a subscriber.
-
#caffeinate_user ⇒ Object
Adds the associations for a user.
Instance Method Details
#caffeinate_subscriber ⇒ Object
Adds the associations for a subscriber
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/caffeinate/active_record/extension.rb', line 7 def caffeinate_subscriber has_many :caffeinate_campaign_subscriptions, as: :subscriber, class_name: '::Caffeinate::CampaignSubscription' has_many :caffeinate_campaigns, through: :caffeinate_campaign_subscriptions, class_name: '::Caffeinate::Campaign' has_many :caffeinate_mailings, through: :caffeinate_campaign_subscriptions, class_name: '::Caffeinate::Mailing' scope :not_subscribed_to_campaign, lambda { |list| subscribed = ::Caffeinate::CampaignSubscription.select(:subscriber_id).joins(:caffeinate_campaign).where(caffeinate_campaigns: { slug: list }, subscriber_type: name) where.not(id: subscribed) } scope :unsubscribed_from_campaign, lambda { |list| unsubscribed = ::Caffeinate::CampaignSubscription .unsubscribed .select(:subscriber_id) .joins(:caffeinate_campaign) .where(caffeinate_campaigns: { slug: list }, subscriber_type: name) where(id: unsubscribed) } end |
#caffeinate_user ⇒ Object
Adds the associations for a user
28 29 30 |
# File 'lib/caffeinate/active_record/extension.rb', line 28 def caffeinate_user has_many :caffeinate_campaign_subscriptions_as_user, as: :user, class_name: '::Caffeinate::CampaignSubscription' end |