Class: ActivityNotification::ORM::ActiveRecord::Subscription
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ActivityNotification::ORM::ActiveRecord::Subscription
- Includes:
- SubscriptionApi
- Defined in:
- lib/activity_notification/orm/active_record/subscription.rb
Overview
Subscription model implementation generated by ActivityNotification.
Class Method Summary collapse
-
.filtered_by_target ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects filtered subscriptions by target instance.
-
.uniq_keys ⇒ Array<String>
Selects unique keys from query for subscriptions.
Instance Method Summary collapse
-
#for_notifiable ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects subscriptions for a specific notifiable instance.
-
#instance_level_only ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects instance-level subscriptions only (where notifiable is present).
-
#key_level_only ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects key-level subscriptions only (where notifiable is nil).
-
#notifiable ⇒ Object?
Belongs to notifiable instance of this subscription as polymorphic association (optional).
-
#target ⇒ Object
Belongs to target instance of this subscription as polymorphic association.
-
#with_target ⇒ ActiveRecord_AssociationRelation<Subscription>
Includes target instance with query for subscriptions.
Methods included from SubscriptionApi
#as_json, #optional_target_names, #subscribe, #subscribe_to_email, #subscribe_to_optional_target, #subscribing_to_optional_target?, #unsubscribe, #unsubscribe_to_email, #unsubscribe_to_optional_target
Class Method Details
.filtered_by_target ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects filtered subscriptions by target instance. ActivityNotification::Subscription.filtered_by_target(@user) is the same as @user.subscriptions
50 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 50 scope :filtered_by_target, ->(target) { where(target: target) } |
.uniq_keys ⇒ Array<String>
Selects unique keys from query for subscriptions.
71 72 73 74 75 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 71 def self.uniq_keys # select method cannot be chained with order by other columns like created_at # select(:key).distinct.pluck(:key) pluck(:key).uniq end |
Instance Method Details
#for_notifiable ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects subscriptions for a specific notifiable instance.
67 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 67 scope :for_notifiable, ->(notifiable) { where(notifiable_type: notifiable.class.name, notifiable_id: notifiable.id) } |
#instance_level_only ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects instance-level subscriptions only (where notifiable is present).
62 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 62 scope :instance_level_only, -> { where.not(notifiable_type: nil) } |
#key_level_only ⇒ ActiveRecord_AssociationRelation<Subscription>
Selects key-level subscriptions only (where notifiable is nil).
58 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 58 scope :key_level_only, -> { where(notifiable_type: nil) } |
#notifiable ⇒ Object?
Belongs to notifiable instance of this subscription as polymorphic association (optional). When present, this subscription is scoped to a specific notifiable instance. When nil, this is a key-level subscription that applies globally.
21 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 21 belongs_to :notifiable, polymorphic: true, optional: true |
#target ⇒ Object
Belongs to target instance of this subscription as polymorphic association.
14 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 14 belongs_to :target, polymorphic: true |
#with_target ⇒ ActiveRecord_AssociationRelation<Subscription>
Includes target instance with query for subscriptions.
54 |
# File 'lib/activity_notification/orm/active_record/subscription.rb', line 54 scope :with_target, -> { includes(:target) } |