Я изо всех сил пытаюсь построить хорошую схему / ассоциации между моделями в Rails, и надеюсь на несколько советов.У «игрока» есть несколько «отборов», и каждый «отбор» состоит из трех упорядоченных «всадников».
Обобщение схемы:
create_table players do |t|
t.string "name"
...
end
create_table picks do |t|
t.integer "player_id"
t.integer "rider1_id"
t.integer "rider2_id"
t.integer "rider3_id"
...
end
create_table riders do |t|
t.string "name"
...
end
У меня есть некоторые изассоциации между построенными моделями:
player.rb:
class Player < ActiveRecord::Base
has_many :picks
end
pick.rb:
class Pick < ActiveRecord::Base
has_many :riders, :foreign_key => "rider1_id"
has_many :riders, :foreign_key => "rider2_id"
has_many :riders, :foreign_key => "rider3_id"
belongs_to :player
end
rider.rb
class Rider < ActiveRecord::Base
belongs_to :pick
end
Я чувствую / знаю, что мне не хватает базового понимания ассоциаций в приведенном выше коде.В частности, я хотел бы иметь возможность сказать что-то вроде: «myPick.rider1.name».Я также мог бы посмотреть, какие пики включают данного гонщика, например «myRider.picks» (хотя я не уверен, что это вообще возможно).И принципиально, я не уверен, что это правильная идея иметь три внешних ключа «всадника» в модели выбора.
Заранее спасибо за любые предложения.Ура, Жак