2013-07-23 2 views
1

나는 활동 항목을 저장하기 위해 다음과 같은 테이블 구조를 가지고그룹 활동 항목

trackable_id 및 trackable_type이 작업이 수행되는 어떤 객체 (엔티티)에 알려줍니다
id, trackable_id, trackable_type, owner_id, owner_type 

. 예를 들어 ID = 1을 가진 사용자 ID와 사진 =

id, trackable_id, trackable_type, owner_id, owner_type 

1,  1,   Picture,  1,  User 

1 마찬가지로 다른 사용자가 동일한 사진을 좋아하는 수를 좋아합니다. 내 뉴스 피드에서, 나는 쉽게 사용자들에 의해 수행되는 활동을 표시 할 수 있습니다, 그러나 나는 이런 식으로 뭔가를 달성하고 싶습니다 :

John and katy likes Picture. 

대신

John likes Picture 
Kay likes Picture. 

을 내가 갈 수있는 방법에 추측 trackable_id 및 trackable_type을 기준으로 그룹을 수행하지만 한 행 (그룹 기준의 예상 결과)을 반환합니다. 전에 group_concat을 사용하지 않았습니다. 이런 상황에서 도움이됩니까? 감사합니다.

답변

0

네 도움이됩니다. (- 당신이 그것을 사용해야 어떤 경우) polymorfic associations을 사용하지 않는 것 같은

Refer this

GROUP_CONCAT(columnName SEPARATOR ' AND ')

0

보인다. 귀하의 방법은 모양을 다음

def liked_by_string 
    user_names = users.collect(&:name).to_sentence # => "John, Katty, Mark and Pete" 

    "#{user_names} like the Picture"  
end 
2

이봐 당신이

CONCAT(GROUP_CONCAT(user_name SEPARATOR 'AND'),' LIKES PICTURES') 

Demo

처럼 사용할 수 있습니다