2012-07-16 97 views
0
class Game < ActiveRecord::Base 
    has_many :game_types, :dependent => :destroy 
    has_many :types, :through => :game_types 
end 

class Type < ActiveRecord::Base 
    has_many :game_types, :dependent => :destroy 
    has_many :games, :through => :game_types 
end 

遊戲類型1 ==單人 遊戲類型2 ==多人導軌的has_many或查詢

我如何可以查詢有兩種類型ID 1或2或兩個遊戲?

此外,我如何查詢既沒有?

這是通過will_paginate與分頁使用,所以單個查詢將是可取的。

預先感謝您拯救我的理智。

回答

3

在rails中,您總是可以使用簡單的SQL。或尚未在阿雷爾全面實施(最後我選中),所以你想要的是與此類似:

Game.joins("game_types ON (game_types.game_id = games.id)").where("game_types.id IN (1,2)") 

這樣的查詢仍然相當高性能的。您可以稍微擴展一下,不要直接引用Ids,但這取決於您。

+0

非常好 - 謝謝。 – pglombardo 2012-07-16 15:58:03