Rails: установить полиморфные ассоциации для двух типов пользователей - PullRequest
0 голосов
/ 26 сентября 2018

Я начинаю кодировать похожий на linkedin веб-сайт в Rails для своей диссертации, которая позволит участникам публиковать предложения о работе (работодатели) и другие участники (сотрудники), чтобы ответить на них.

Я имеюпытался обернуть голову вокруг модели данных и ассоциаций - потому что я не хочу иметь два канала аутентификации для сотрудников и Yees - я хочу сохранить электронную почту, псевдоним и пароль в одной таблице (модель) и использовать это для регистрациив, а затем оттуда перейти к конкретным данным работодателя и сотрудника.

Я читал о STI, но я подумал, что данные Yer сильно отличаются от данных Yee, и в таблице Users будет много нулей, чтоПолагаю, это не совсем оптимальная вещь.

Тогда я наткнулся на полиморфные ассоциации, но я не знаю, как их настроить.Я думал о чем-то вроде этого:

User < ApplicationRecord
  has_one :employer, polymorphic: true
  has_one :employee, polymorphic: true
end

Employee < ApplicationRecord
end

Employer < ApplicationRecord
end

У меня голова болит, потому что я не знаю, как лучше всего добиться этого, любые советы очень ценятся, ура

1 Ответ

0 голосов
/ 26 сентября 2018

Здесь вам не нужно использовать полиморфную ассоциацию.

User < ApplicationRecord
  has_one :employer
  has_one :employee

  def employer?
    employer.present?
  end

  def employee?
    employee.present?
  end
end

Не уверен, что это будет лучшим решением в вашем случае.

...