module ActsAsAble::Disser::InstanceMethods

Public Instance Methods

diss(obj) click to toggle source

踩某对象

# File lib/acts_as_able/disser.rb, line 19
def diss(obj)
  self.disses.find_or_create_by(dissable_type: class_name(obj), dissable_id: obj.id)
end
diss?(obj) click to toggle source

是否踩了某对象

# File lib/acts_as_able/disser.rb, line 29
def diss?(obj)
  !diss_by(obj).blank?
end
dissings(dissable_type) click to toggle source

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

# File lib/acts_as_able/disser.rb, line 34
def dissings(dissable_type)
  return dissable_type.constantize.where(id: self.disses.where(dissable_type: dissable_type).pluck(:dissable_id))
end
undiss(obj) click to toggle source

取消对某对象对踩

# File lib/acts_as_able/disser.rb, line 24
def undiss(obj)
  diss_by(obj).destroy
end

Private Instance Methods

diss_by(obj) click to toggle source
# File lib/acts_as_able/disser.rb, line 40
def diss_by(obj)
  self.disses.find_by(dissable_type: class_name(obj), dissable_id: obj.id)
end