У меня есть три модели: RaceCards, Races и Wagers.
class RaceCard < ActiveRecord::Base
has_many :races
has_many :wagers
end
class Race < ActiveRecord::Base
belongs_to :race_card
has_many :wagers, :through => :race_card
end
class Wager < ActiveRecord::Base
belongs_to :race_card
has_many :races, :through => :race_card
end
rails g model RaceCard race_card_date:date number_of_race:integer
rails g model Race race_card_id:integer race_nbr:integer
rails g model Wager race_nbr:integer race_card_id:integer wager_type:string payoff:integer
Итак, если я сделаю это в консоли:
Wager.first.races #All races on the race card are returned. Good!
Но мне нужен способ определить, какие расы возвращаются, поэтому я добавляю условие:
if I add this: :condition =>{:race_nbr => 1}
Wager.first.races #Return just race 1, but this is static (always set to 1)
Мой вопрос: как мне установить условие в race_nbr в модели Wager:
:condition => {:race_nbr => wager.race_nbr} #throws an error
:condition => {:race_nbr => self.race_nbr} #throws an error
Я пробовал много других вещей и просто не могу этого понять. Любое руководство будет оценено. Заранее спасибо.
Обновление: сейчас я попробовал решение, предложенное PinnyM ниже
:condition => "wagers.race_nbr = races.race_nbr" #unfortunately this yields the following:
SQL error or missing database (no such column wagers.race_nbr)