class Vote < ApplicationRecord belongs_to :votable, polymorphic: true enum :vote_type, { upvote: 0, downvote: 1 } validates :user_session, presence: true validates :votable_type, presence: true validates :votable_id, presence: true validates :vote_type, presence: true scope :for_object, ->(obj) { where(votable: obj) } end