2012-07-16 70 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