Дилемма выбрать ассоциацию для последующего варианта использования в модели рельсовой ассоциации - PullRequest
0 голосов
/ 05 февраля 2019

В приложении PlayStation у меня есть модель User, которая уже имеет has_many through связь с ролями и user_roles.Теперь наше требование требует от нас создать командную модель, в которой есть один капитан, а капитан является пользователем (одна запись модели пользователя), и в то же время в команде много игроков.Я реализовал сценарий следующим образом:

class User < ApplicationRecord
  has_many :user_roles
  has_many :roles, through: :user_roles, :dependent => :destroy
  belongs_to :team
end

class Team < ApplicationRecord
    has_one :captain, class_name: 'User' , foreign_key: 'captain_id'
     has_many  :users, dependent: :destroy
end

Моя проблема в том, что я не могу создать пользователя без команды.Когда я создаю нового пользователя, он спрашивает team must exist.Наш план состоит в том, чтобы создать пользователя, а затем мы назначим каждого пользователя в качестве игроков, и из них один будет капитаном.Поэтому, пожалуйста, сообщите мне, если мой мыслительный процесс неверен в отношении варианта использования, а также предложите мне идеальный стиль ассоциации для варианта использования.

1 Ответ

0 голосов
/ 05 февраля 2019

Начиная с Rails 5, ассоциация belongs_to проверяет наличие по умолчанию.Вы можете изменить его с помощью опции optional:

class User < ApplicationRecord
  belongs_to :team, optional: true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...