Задать вопрос
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 чтобы связать три модели правильно?
  • Вопрос задан
  • 157 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Thinknetica
    Оптимизация Ruby/Rails-приложений
    9 недель
    Далее
Пригласить эксперта
Ответы на вопрос 1
customtema
@customtema
arint.ru
Вводите еще одну сущность-связь "многие-ко-многим" между пользователями и компаниями.

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

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

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