class Vote < ApplicationRecord belongs_to :user belongs_to :votable, polymorphic: true enum :direction, {upvote: 0, downvote: 1} validates :user_id, uniqueness: { scope: [:votable_type, :votable_id], message: "has already voted on this item" } end