У меня упрощены эти модели:
class Game::Champ < ActiveRecord::Base
has_one :contract, :class_name => "Game::ChampTeamContract", :dependent => :destroy
has_one :team, :through => :contract
# Attributes: :avg => integer
end
#
class Game::Team < ActiveRecord::Base
has_many :contracts, :class_name => "Game::ChampTeamContract", :dependent => :destroy
has_many :champs, :through => :contracts
end
#
class Game::ChampTeamContract < ActiveRecord::Base
belongs_to :champ
belongs_to :team
# Attributes: :expired => bool, :under_negotiation => bool
end
#
Итак, я хочу найти все Game :: Champs, которые не имеют Game :: ChampTeamContract, независимо от того, что ИЛИ имеет,но (это не : under_negociation ИЛИ: expired), отсортировано по Champ.avg ASC
Я как бы застрял при использовании двух запросов, суммировании результата и его сортировке.Я хотел бы, чтобы был лучший способ сделать это более "Railish"
ОБНОВЛЕНИЕ: Только что добавил ограничение о: expired