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