我对Rails的主动记录仍然缺乏经验,我很难找到一种好方法来匹配与多个其他记录相关联的多条记录。
我正在经历一个有多个赛季和球队的联赛。我想找到目前活跃的赛季中的所有球队。所以...多个季节和多个团队。
模特:
class Season < ActiveRecord::Base
has_many :team_seasons, :dependent => :delete_all
has_many :teams, :through => :team_seasons
end
class Team < ActiveRecord::Base
has_many :team_seasons, :dependent => :delete_all
has_many :seasons, :through => :team_seasons
end
我认为它应该类似于@teams = Team.includes(:seasons).where(:active => true)
但是返回的sql是SELECT
个团队.* FROM
团队WHERE
团队.
活跃{{1}这只是检查团队是否活跃而不是检查季节。此外,该查询需要很长时间才能运行。
所以...有一个很好的方法吗?我知道我可以做一个手动的sql语句,但我真的希望能够使用并学习activerecord方法来做到这一点。
提前致谢!
答案 0 :(得分:1)
这@teams = Team.includes(:seasons).where("seasons.active = true")
成功了。