Sha256: 5fce1eaeddf683690a70c9c41e52629cd99ac39a9371f84294791ddc2691bb0c
Contents?: true
Size: 560 Bytes
Versions: 140
Compression:
Stored size: 560 Bytes
Contents
module WithDiscussionCreation::Upvote extend ActiveSupport::Concern included do has_many :upvotes has_many :upvoted_discussions, through: :upvotes, source: :discussion end def upvoted?(discussion) discussion.upvote_for(self).present? end def upvote!(discussion) upvoted_discussions << discussion end def undo_upvote!(discussion) upvoted_discussions.delete(discussion) end def toggle_upvote!(discussion) if upvoted?(discussion) undo_upvote!(discussion) else upvote!(discussion) end end end
Version data entries
140 entries across 140 versions & 2 rubygems