Задать вопрос
AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как правильно связать три модели?

Добрый день! Есть пользователи и есть компании, у компаний может быть много пользователей, у пользователей может быть много компаний, у компаний есть подразделения, сейчас все организовано так:

class User < ActiveRecord::Base
  has_many :companies, through: :users_companies
  has_many :users_companies
  has_many :divisions, through: :users_divisions
  has_many :users_divisions
  has_many :users_roles, dependent: :destroy
  has_many :roles, through: :users_roles
end


class Company < ActiveRecord::Base
  has_many :users_companies
  has_many :users, through: :users_companies
  has_many :divisions, dependent: :destroy
end


class Division < ActiveRecord::Base
  has_ancestry
  belongs_to :company
  has_many :users, through: :users_divisions
  has_many :users_divisions
end


в базе UsersDivision добавил колонку company_id но при обновлении модели User колонка company_id становиться NULL, идентичная ситуация с моделью Role может быть есть какой то другой rails way чтобы связать три модели правильно?
  • Вопрос задан
  • 156 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
customtema
@customtema
arint.ru
Вводите еще одну сущность-связь "многие-ко-многим" между пользователями и компаниями.

И да, советую забить на такое понятие, как "правильность". Важных критериев всего три: а) работает, б) безопасно, в) быстро. Четвертый критерий - красиво (о дизайне кода). "Правильности" в этим списке нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы