문제

나는 '요청'객체 목록이 있으며, 각각은 상당히 정상적인 ActiveRecord 품질을 가지고 있습니다. 요청 테이블은 조인 테이블 'Games_Requests'가있는 게임 테이블과 관련이있어 요청에 요청. 게임 배열이 있습니다.

문제는 게임 열과 다른 몇 가지에 의해 독창성이 정의되는 마지막 N 고유 요청을 찾는 방법이 있지만 구체적으로 다른 컬럼을 무시합니다 (예 : 요청 사용자의 이름과 같이).

'find (: all, : limit => 5, : include => [: games, : stage]')와 같은 구문을 보았지만 복제 된 복제입니다.

감사...

편집 : 훌륭한 응답을 위해 혼돈에 감사드립니다. 당신은 저를 정말로 가까이 데려 갔지만 여전히 유효한 요청 객체가되기 위해서는 반품이 필요합니다. 요청 된 행에서 구별되는 첫 5 개의 레코드. 나는 당신이 그것을 구성 할 때 찾기를 사용할 수 있고, 첫 번째 찾기에 의해 반환 된 각 세트와 일치하는 테이블의 첫 번째 행에 대해 두 번째 찾기를 할 수 있습니다.

편집하다:

Games.find(
    :all, :limit => 5,
    :include => [:games, :requests],
    :group => 'games, whatever, whatever_else'
)

... SQL 오류가 발생합니다.

Mysql::Error: Unknown column 'games' in 'group statement': SELECT * FROM `games`  GROUP BY games

나는 프로젝트에 맞는 것에 대해 몇 가지 변경을했다. 게임 대신 요청 목록 받기 등 :

Request.find(
    :all, :order=>"id DESC", :limit=>5,
    :include=>[:games],   #including requests here generates an sql error
    :group=>'games, etc'  #mysql error:  games isn't an attribute of requests
    :conditions=>'etc'
)

여기에서 join => 옵션을 사용해야 할 것 같아요.

도움이 되었습니까?

해결책

Games.find(
    :all, :limit => 5,
    :include => [:games, :requests],
    :group => 'games, whatever, whatever_else'
)

다른 팁

Rails Uniq_by를 사용해보십시오. IT는 협회와 함께 작동하며 배열을 반환합니다.

@document = Model.uniq_by(&:field)

세부 사항

나는 당신이 find_by_sql 및 group을 사용하여 이것을 할 수 있다고 생각합니다.

Games.find_by_sql("SELECT * FROM games GROUP BY user_id")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top