그래서 모델을 생성하는 위/아래 투표 메커니즘을 구현하고 있습니다. 지금까지 나는 비디오 (투표 대상)에 하나의 vote_count가 있고 vote_count는 비디오에 속한다는 것을 알고 있습니다. 그러나 나는 또한 내 vote_count 데이터베이스에서 비디오에 투표 한 사용자를 추적하려고합니다. 즉, vote_count에 많은 사용자가 있고 사용자가 vote_count에 속해 있습니까?모델 연관 질문
모델 연관 질문
답변
이와 같은 독립적 인 기록으로 표를 추적하는 것이 더 쉬울 수 있습니다
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
당신은 사람들이 아래로 투표를하고있는 경우
, 당신은 어떻게 든 그물 투표 총을 추적해야합니다. 이것은 까다로울 수 있으므로 투표 플러그인을 찾고 싶을 수 있습니다.여기에 뭔가가 빠졌습니까? netVoteTally
을 Videos
의 속성으로 할당하는 것이 좋습니다. video.new
이 호출되고 비디오 메서드 외부에서 액세스 할 수있는 incNetVideoTally
및 decNetVideoTally
메서드가 있으면 0으로 초기화 하시겠습니까? 단지 $ 0.02.
어떤 사용자가 비디오를 투표했는지 알고 싶기 때문에 풍부한 다 대다 연관이있는 자체 모델이 필요합니다. 또한 비디오에 투표 한 모든 사용자 또는 유권자가 투표 한 모든 비디오와 같이 사용자에게 표시 할 수있는 여러 가지 사항에 대해 최대한의 유연성을 제공합니다. –
나는이 스레드의 잘못된 지점에 내 대답을 넣은 것 같습니다. 나는 그 자신의 좋은 대답에 대한 tadman의 의견에 더 많은 반응을 보였습니다. 여기서 그물 투표 총계를 추적하는 것이 까다로울 수 있다고 언급했습니다. 사과. –
- 1. CakePHP 모델 연관 질문
- 2. ActiveRecord 연관 모델
- 3. 레일즈 모델 연관 문제
- 4. Cakephp 모델 연관
- 5. UML 클래스 모델 질문
- 6. SQL 연관 개체 질문
- 7. rails3 has_one 연관 모델 생성
- 8. 양식에 여러 모델 연관 (has_one)
- 9. 레일 모델 범위의 연관 데이터
- 10. CakePHP 3 레벨 깊이 모델 연관
- 11. 두 모델 간의 다중 연관 - 레일즈 3
- 12. 복합 모델 (모델 내의 모델) 또는 모델 간의 수동 외래 키 연관?
- 13. django 모델 디자인 질문
- 14. Magento 이벤트 모델 질문
- 15. 간단한 모델 관계 질문
- 16. Cakephp Newbie 모델 질문
- 17. 레일 모델 참조 질문
- 18. Django 모델 formset 질문
- 19. django 모델 필터 질문
- 20. 모델 연관에 대한 질문
- 21. SQL 모델 최적화 질문
- 22. django 모델 foreignkeys 질문
- 23. 내비게이션 모델 질문
- 24. django 모델 API에 대한 질문
- 25. 프로파일 모델 연결 관련 질문
- 26. 도메인/객체 모델 디자인 질문
- 27. RoR : 모델 유효성 확인 질문
- 28. cakephp 연관 오류?
- 29. 레일 ActiveRecord 연관
- 30. 레일 모델 : 자체 인수 (NOT 연관)를 가진 has_many
+1. 나는 같은 글을 쓰는 중간에 있었다. 당신이 묘사 한 @Justin은 사용자가 하나의 비디오에만 투표하도록 허용합니다. (a) 어느 사용자가 어떤 비디오에 투표했는지, (b) 투표 한 방법 (위 또는 아래) 및 (잠재적) (c)를 추적해야합니다. – Nuby
감사! ': counter_cache => true'는 무엇입니까? –
또 다른 두 가지 : 1. 반드시 has_many : videos를 사용자 모델에 추가하고 belongs_to : user를 비디오 모델에 추가해야합니까? 그리고 두 번째로 컨트롤러에서 하나의 upvote 메서드와 하나의 downvote 메서드를 만들겠습니까? –