Вопрос модельной ассоциации - PullRequest
1 голос
/ 17 марта 2011

Итак, я внедряю механизм голосования вверх / вниз, для которого я генерирую модель.До сих пор я понимаю, что у видео (за что будет проголосовано) есть один voice_count, а voice_count принадлежит видео.Тем не менее, я также хочу отследить в моей базе данных voice_count пользователя, который проголосовал за видео.Означает ли это, что у voice_count много пользователей и что пользователь принадлежит к voice_count?

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

Может быть проще отследить голоса как независимые записи, например:

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

Если у вас есть люди, голосующие за и против, вам нужно как-то отследить общее количество голосов. Это может быть сложно, так что вы можете поискать плагин для голосования.

0 голосов
/ 17 марта 2011

Я что-то здесь упускаю? Почему бы не присвоить netVoteTally как свойство Videos. Инициализировать его в ноль при вызове video.new и иметь методы incNetVideoTally и decNetVideoTally, которые доступны вне метода видео? Просто мои 0,02 доллара.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...