Может быть проще отследить голоса как независимые записи, например:
class VideoVote < ActiveRecord::Base
belongs_to :user
belongs_to :video
end
class User < ActiveRecord::Base
has_many :video_votes
has_many :voted_videos,
:through => :video_votes,
:source => :video
end
class Video < ActiveRecord::Base
has_many :video_votes,
:counter_cache => true
has_many :voted_users,
:through => :video_votes,
:source => :user
end
Если у вас есть люди, голосующие за и против, вам нужно как-то отследить общее количество голосов. Это может быть сложно, так что вы можете поискать плагин для голосования.