Module: LoyalCore::ActsAsLikeTrackAble::ClassMethods

Defined in:
lib/loyal_core/acts/like_track_able.rb

Defined Under Namespace

Modules: InstanceMethods

Instance Method Summary collapse

Instance Method Details

#loyal_core_acts_as_like_track_able(*args) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/loyal_core/acts/like_track_able.rb', line 11

def loyal_core_acts_as_like_track_able *args
  has_many :like_tracks, :class_name => "LoyalCore::LikeTrack", :as => :target

  include InstanceMethods

  scope :filter_by_liked_by, ->(user_or_user_id) do
    joins(:like_tracks).where(
      :"#{::LoyalCore::LikeTrack.table_name}" => {
        :created_by => (user_or_user_id.is_a?(User) ? user_or_user_id.id : user_or_user_id)
      }
    )
  end
end