Я пытаюсь собрать пару ассоциаций моделей для небольшого проекта, над которым я работаю. Я новичок в Rails, так что все это немного сбивает с толку.Rails 3 Ассортимент моделей с has_many, принадлежит_to и: через
Мой прецедент довольно прямолинейный. У меня есть спортивная Лига, у которой есть многоРазделы. Каждый Подразделимеет большое количество. Каждый Teamимеет одинКапитан и имеет многоИгроки.
Теперь игроки и капитаны представлены пользователем класса. Единственное, что их отличает, это их роль. Я использую CanCan для управления Ролями.
Теперь вот мои модели и как я определил ассоциации:
class Division < ActiveRecord::Base
belongs_to :league
has_many :teams
end
class League < ActiveRecord::Base
has_many :divisions
end
class Team < ActiveRecord::Base
belongs_to :division
accepts_nested_attributes_for :division
has_one :captain, :class_name => "User"
accepts_nested_attributes_for :captain
has_many :rosters
has_many :players, :through => :rosters, :source => :user
accepts_nested_attributes_for :players
validates_presence_of :name
validates_uniqueness_of :name
end
class User < ActiveRecord::Base
has_many :authentications
has_many :rosters
has_many :teams, :through => :rosters
belongs_to :team
end
And here is my generated Schema file.
- ли я правильно определить свои модельные ассоциации?
- Как мне назначить игрока или капитана команде, когда я создаю или редактирую команду?
Любая помощь была бы принята с благодарностью.
Мне было бы интересно узнать о различных способах определения этих моделей и ассоциаций. Потому что, честно говоря, все это принадлежит _to и has_many вещи действительно меня смущает. – Ramin
Вы можете, например, не определять капитана как has_one, а скорее быть атрибутом модели реестров. Но использование has_one в этой ситуации кажется хорошим. –