У меня есть, как мне показалось, ассоциация многих ко многим, что я пытаюсь получить работу. Я могу добраться до соединительного стола с обеих сторон, но не могу пройти через соединительный стол на другую сторону. У меня есть три модели: жокей, стартер и гонки. Модели следующие:
class Jockey < ActiveRecord::Base
has_many :starters
has_many :races, :through => :starters
end
class Starter < ActiveRecord::Base
belongs_to :race
belongs_to :jockey
end
class Race < ActiveRecord::Base
has_many :starters
has_many :jockeys, :through => :starters
end
Когда я делаю это:
Jockey.find(1).starters # everything works great
и когда я делаю это:
Race.find(1).starters # everything works great
но если я попробую это
Race.find (1) .starters.jockeys или Jockeys.find (1) .starters.races
Я получаю ошибки:
`Jockey Load (0.0ms) SELECT "jockeys".* FROM "jockeys" WHERE "jockeys"."id" = 1 LIMIT 1
NoMethodError: Starter Load (0.0ms) SELECT "starters".* FROM "starters" WHERE
`"starters"."jockey_id" = 1undefined method `races' for
#<ActiveRecord::Relation:0x4de89831>
Я пытался заставить это работать в течение нескольких часов, но не могу понять, что я делаю неправильно. Любые указания будут оценены.