2013-09-29 2 views
0

나는 그 책 (title, author, publisher 등)에 대한 정보와 모델, Book을 가지고, 또한 views, downloads, shares있다.Rails 4를 사용하여 단일 행의 값을 합하는 방법은 무엇입니까?

하지만 내가하고 싶은 일은 책을 "인기도"로 정렬하는 것입니다. 내 용어로는 그 특정 행에 대해 views + downloads + shares이고, 그런 다음 선택적으로 레코드와 관련된 '인기도 점수'를 표시하고 싶습니다.

감사합니다.

+0

, 무슨 문제? –

+0

잘 모르겠습니다. 어떻게이 쿼리를 만들 수 있습니까? ㅎ. 나는 정직하게 google에 무엇이 있는지 모른다. .. – Tallboy

답변

5

이 시도 :

그래서
records = Book.select("books.*, views + downloads + shares AS popularity").order("popularity DESC") 
# => access popularity as record.popularity 
+0

이것은 멋지다! 나는 시도 할 것이다. 그건 그렇고,이게 멍청한 짓이라고 생각하니? 내가 업데이트해야 할 4 번째 열을 가져야하는지 확실하지 않습니다. 거대한 실적이 아니라면이 방법을 사용하십시오. – Tallboy

+2

'books'테이블이 거대하고이 데이터가 자주 필요한 경우 다른 열을 갖는 것이 좋습니다. 다른 옵션 (필자가 선호)은 필자의 견해를 빠르게하기 위해 캐싱을 사용하는 것입니다. – tihom

+0

일부 데이터베이스는 계산 된 인기도를 파생 된 열로 정의 할 수 있으며 가장 인기있는 서적을 신속하게 찾을 수 있도록 색인을 생성 할 수도 있습니다. –

관련 문제