Почему @ event.users.size не работает? - PullRequest
0 голосов
/ 30 сентября 2010

Пытаясь получить общее количество пользователей для данного события, и я думаю, что у меня должно получиться, но я получаю следующее:

Не удалось найти ассоциацию (и) источника:squads_users в модели Squad.Попробуйте 'has_many: users,: through =>: squads,: source =>'.Это один из: team,: event,: event_division,: users,: point_adjustments,: checkpoint_squads,: Division или: checkpoints?

Мой ActiveRecord Kung Fu слаб: - /

Событие

has_many :squads
has_many :users, :through => :squads

Команда

 has_many :squads

Отряд

 belongs_to :event
 belongs_to :team
 has_and_belongs_to_many :users

SquadsUsers

 belongs_to :user
 belongs_to :squad

Пользователь

 has_and_belongs_to_many :squads

Ответы [ 2 ]

0 голосов
/ 01 октября 2010

Действительно ли ваша модель соединения называется SquadsUsers?Это может быть проблемой.Это должен быть SquadUser.

Кроме того, я думаю, вам нужны отношения «многие ко многим» между Event и Team, а не Event и Squad, правильно?В этом случае вам нужно это:

Event
has_many :event_teams
has_many :teams, :through => :event_teams

EventTeam
belongs_to :event
belongs_to :team

Team
has_many :squads

Squad
belongs_to :team
has_many :squad_users
has_many :users, :through => :squad_users

SquadUser
belongs_to :squad
belongs_to :user

User
has_many :squads
0 голосов
/ 30 сентября 2010

Вы должны удалить модель SquadsUsers и просто иметь таблицу с именем squads_users.has_and_belongs_to_many будет автоматически использовать эту таблицу без дополнительной модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...