Tôi có một danh sách các đối tượng 'yêu cầu', mỗi đối tượng có phẩm chất activerecord khá bình thường. Bảng yêu cầu có liên quan đến bảng trò chơi với bảng tham gia, 'games_requests,' để yêu cầu có mảng request.games.Đường ray: Làm cách nào để tìm() tất cả các bản ghi duy nhất trong các trường nhất định?
Câu hỏi đặt ra là, có cách nào để thực hiện tìm kiếm cho n yêu cầu duy nhất cuối cùng không, tính duy nhất được xác định bởi cột trò chơi và một số khác, nhưng đặc biệt bỏ qua các colums khác (như tên của người dùng yêu cầu?)
Tôi thấy cú pháp như 'tìm (: tất cả,: giới hạn => 5,: include => [: trò chơi,: giai đoạn])' nhưng đã trả về các từ khóa trùng lặp.
Cảm ơn ...
EDIT: Cảm ơn sự hỗn loạn cho một phản ứng tuyệt vời. Bạn đã cho tôi thực sự gần gũi, nhưng tôi vẫn cần trả về là đối tượng yêu cầu hợp lệ: 5 bản ghi đầu tiên khác biệt trong các hàng được yêu cầu. Tôi chỉ có thể sử dụng tìm thấy khi bạn xây dựng nó và sau đó thực hiện tìm kiếm thứ hai cho hàng đầu tiên trong bảng khớp với từng bộ được trả về bởi lần tìm đầu tiên.
EDIT:
Games.find(
:all, :limit => 5,
:include => [:games, :requests],
:group => 'games, whatever, whatever_else'
)
... cung cấp cho một lỗi SQL:
Mysql::Error: Unknown column 'games' in 'group statement': SELECT * FROM `games` GROUP BY games
tôi đã thực hiện một vài thay đổi cho những gì tôi giả định là chính xác cho dự án của tôi; nhận danh sách yêu cầu thay vì trò chơi, v.v.:
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'
)
Tôi nghĩ mình sẽ phải sử dụng tùy chọn: join => tại đây.
này trả về các trò chơi, bất cứ điều gì, và các cột whatever_else. Có cách nào để trả về các đối tượng yêu cầu hoàn chỉnh, chỉ loại bỏ các đối tượng không có tính duy nhất trong các cột này không? – Sniggerfardimungus
Vâng. Đã chỉnh sửa cho mỗi. – chaos
Hrm. Có vấn đề với 'trò chơi' là thuộc tính ảo thông qua bảng tham gia. (xem câu hỏi đã chỉnh sửa) – Sniggerfardimungus