Разработка приложения Rails: наследование одной таблицы?

Я изучаю это уже несколько дней, и я знаю, что существует множество статей, в которых говорится о наследовании одной таблицы и полиморфных ассоциациях с Rails. Многие полезные материалы относятся к 2009 году или раньше, и мне интересно, есть ли сейчас лучший подход к этой проблеме.

Ситуация

В приложении есть несколько разных типов пользователей (например, покупатель и продавец), у каждого из которых есть профиль. Профиль для каждого типа пользователя действительно разный, поэтому в настоящее время я исключаю идею создания одной общей таблицы «профилей».

Мой текущий подход

такой же, как это решение.

class User < ActiveRecord::Base
  # authentication stuff
end

class UserType1 < User
  has_one :user_type_1_profile
end

class UserType2 < User
  has_one :user_type_2_profile
end

...

class UserTypeN < User
  has_one :user_type_n_profile
end

Основываясь на моем исследовании, это своего рода «смешанная модель» дизайна.

Честно говоря, на данный момент я не знаю другого решения, которое могло бы работать. Каждый раз, когда я вижу подобных вопросов , я вижу, что возникает идея полиморфных ассоциаций. Не мог бы кто-нибудь объяснить, как полиморфная ассоциация будет работать в этом случае?

Есть ли у кого-нибудь другие предложения по дизайну?

8
задан Community 23 May 2017 в 12:00
поделиться