module ActsAsAble::Liker::InstanceMethods

Public Instance Methods

like(obj) click to toggle source

赞某对象

# File lib/acts_as_able/liker.rb, line 19
def like(obj)
  self.likes.find_or_create_by(likable_type: class_name(obj), likable_id: obj.id)
end
like?(obj) click to toggle source

是否赞了某对象

# File lib/acts_as_able/liker.rb, line 29
def like?(obj)
  !like_by(obj).blank?
end
likings(likable_type) click to toggle source

查看某种类型踩的所有对象

# File lib/acts_as_able/liker.rb, line 34
def likings(likable_type)
  return likable_type.constantize.where(id: self.likes.where(likable_type: likable_type).pluck(:likable_id))
end
unlike(obj) click to toggle source

取消对某对象的赞

# File lib/acts_as_able/liker.rb, line 24
def unlike(obj)
  like_by(obj).destroy
end

Private Instance Methods

like_by(obj) click to toggle source
# File lib/acts_as_able/liker.rb, line 40
def like_by(obj)
  self.likes.find_by(likable_type: class_name(obj), likable_id: obj.id)
end