2
我有我想以做玩家一些搜索使用以下机型协会:Rails:用连接模型查找 - 如何?
class Player < ActiveRecord::Base
belongs_to :user
has_many :abilities
has_many :sports, :through => :abilities
...
end
class User < ActiveRecord::Base
has_one :player
...
end
class Ability < ActiveRecord::Base
belongs_to :player
belongs_to :sport
has_one :level
...
end
class Sport < ActiveRecord::Base
has_and_belongs_to_many :category_sports
has_many :abilities
has_many :players, :through => :abilities
...
end
class CategorySport < ActiveRecord::Base
has_and_belongs_to_many :sports
end
我有一个表格,其中用户可以填写两个输入:城市和运动
城市字段在用户模型中为(@user.city
),运动场可以在CategorySport中为(@category_sport.name
)或运动模型为(@sport.name
)。
现在我有以下在球员模型进行搜索:
def search
self.find(:all,:include => 'user',:conditions => ['users.city LIKE ?', "%#{city}%"])
end
我想知道我将如何添加一个连接模型(能力)和相关的(运动,categorysport)在这个查询中也是为了通过运动找到。所以,不仅仅是为用户城市找到,也是通过体育。
它不工作。如果城市不是LIKE的任何记录,它不会返回任何东西... – 2012-07-13 01:03:33
你的意思是,只有当'用户'没有匹配时才会得到不正确的结果吗?这很奇怪。我可以看到生成的SQL吗? – HargrimmTheBleak 2012-07-13 04:40:38
我的不好。抱歉。感谢你的回答。 – 2012-07-13 15:33:35