Sha256: cc0d084b7bced00c6400f4a0e43c427479b3cb56705c19b31926d42151d7b035

Contents?: true

Size: 571 Bytes

Versions: 11

Compression:

Stored size: 571 Bytes

Contents

class Like < ActiveRecord::Base
  belongs_to :user
  belongs_to :target, polymorphic: true
  
  scope :for_targets, ->(type, ids) do
    where('target_type = :type AND target_id IN(:ids)', type: type, ids: ids)
  end
  
  validates :target_id, presence: true, uniqueness: { scope: [:target_type, :user_id] }
  validates :target_type, presence: true
  validates :user_id, presence: true
  
  attr_accessible :positive, :target_id, :target_type
  
  after_save do
    self.target.update_likes_counter
  end

  after_destroy do
    self.target.update_likes_counter
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
voluntary-0.7.1 app/models/like.rb
voluntary-0.7.0 app/models/like.rb
voluntary-0.6.0 app/models/like.rb
voluntary-0.5.2 app/models/like.rb
voluntary-0.5.1 app/models/like.rb
voluntary-0.5.0 app/models/like.rb
voluntary-0.4.0 app/models/like.rb
voluntary-0.3.0 app/models/like.rb
voluntary-0.2.4 app/models/like.rb
voluntary-0.2.3 app/models/like.rb
voluntary-0.2.2 app/models/like.rb