1

내가 질문 표를 텍스트, 다른 테이블에서, 각각의 대답은 표를 가지고 을 question_id : 주문 테이블 다른 테이블의 값을 그룹화하여

내가 요청할 수 있습니다

을 answer_id

question.votes.count 

와 총 투표를 위해 내가 본 방법 그룹 투표의 DB를에 http://guides.rubyonrails.org/active_record_querying.html#group

Vote.group("answer_id") 

하지만 투표로 질문을하고 싶습니다. 그것은 다른 테이블의 그룹화를 통해 테이블에서 배열을 정렬하는 것입니다. 그게 가능하니?

q=Question.last 
q.answers.order_by_vote #How to do this? 

나는 나의 대답은 질문에 속하는 투표의 부분 집합에 그룹을 만드는 대답 모델에 대한 범위를 일을 할 수 있다고 생각. 내가 맞습니까?

감사합니다.

답변

1

먼저 DB (데이터베이스)라고 할 때 테이블을 의미한다고 생각합니다. 특정 모델 (예 : 질문, 득표 및 답변)에 대한 데이터를 보유하고있는 데이터베이스 내의 구조 테이블 세 개의 테이블이있는 경우

둘째, attr_accessible : answer_id를 호출해도 이 속성은 접근 가능 여부에 관계없이이 속성으로 검색 할 수 있습니다. 데이터베이스의 색인으로 지정하지 않으면 색인이 아닙니다. attr_accessible은 속성이 대량 할당을 사용하여 설정할 수 있음을 나타냅니다. 예 : . 당신이 update_attributes 전화

을 마지막으로, 투표 수에 의해 answer_id 순서로 그룹화 할 경우, 다음과 같은 쿼리를 수행 할 수 있습니다 :

Vote.select('count(id) as votes, answer_id').group('answer_id').order('votes DESC') 

그룹화 기준 이외의 다른 값으로 주문하려면 그룹에 추가해야합니다. 이렇게하면 두 번째 값에 대해 임의의 결과를 얻지 못하게됩니다. 예를 들면 : 난 그냥 내 링크에 정렬 방법을 사용하여, 당첨으로 내 링크를 구성하는 방법을 알아 냈

Vote.group('answer_id').group('column_1').order('column_1 DESC') 
+0

먼저 먼저 답변 해 주셔서 감사합니다. 내 견해를 DB 대신 테이블 대신 attr_accesible로 수정하는 질문을 편집 할 것입니다. – brunosan

1

보기 :

<% @user.links.sort { |a, b| b.votes.sum(:score) <=> a.votes.sum(:score) }.each do |link| %>

votes.sum (악보) 그랩 특정 링크가 투표 표에서 갖는 투표 수.

희망이 도움이됩니다.

관련 문제