나는 조금 더 할 일이 있다고 생각합니다. 모델에 질문과 사용자 간의 다 대다 관계를 추가해야합니다. 사용자는 어떤 질문에 투표했는지, 어떤 방법으로 (위 또는 아래로) 투표했는지 기억해야합니다. 그 후에, 화면에서 질문을 렌더링 할 때, 표시된 테이블과 관련된 현재 사용자의 투표를 해당 테이블에서 선택해야합니다.
사용자가 질문에 투표 할 때 해당 테이블에 레코드를 추가해야합니다. 또한 질문을 표시 할 때 사용자가 upvoted (downvoted) 한 경우 upvote (downvote) 링크를 따라 스타일을 지정해야합니다. 사용자가 다시 투표를 시도하면 사용자가 이미 투표 한 경우 데이터베이스에 투표를 등록하기 전에이를 확인할 수 있습니다.
이런 종류의 작업을 수행하는 가장 빠른 방법은 아니지만 가장 제어력이 뛰어납니다 (나중에 특정 사용자의 투표 스타일, 투표일에 대한 날짜 및 시간에 대한 자세한 통계를 표시 할 수 있음). 주조, 당신은) ... 사용자가 등등 하루에 캐스팅 할 수 있습니다 투표 수에 제한을 부과 할 수
지금은 video_id와 user_id가 모두 포함 된 독립적 인 리소스입니다. –
동영상 만 평가할 수 있다면 등급 올릴 수 있습니다. 이 경우, 당신은 아마'@previous_rating = Rating.where (: video_id => params [: video_id], : user_id => current_user.id) .first'를하고'@ previous_rating.nil? '을 체크하여 사용자가 이전에이 비디오를 평가했습니다. 그가 가지고있는 경우 들어오는 등급을 확인하고 다른 경우 upvote/downvote로 변경하거나 동일한 경우 반환하십시오. –
이것은 의미가 있습니다. 왜'where '호출이 끝날 때'.first'를해야합니까? 사용자가 한 번만 투표해야합니까? –