У меня есть две модели, пользователи и темы, которые я сейчас вхожу в ассоциацию HABTM в таблице тем. В принципе, после того, как пользователь создает новую тему, она становится доступной другим пользователям для выбора для собственного использования.Два разных типа ассоциаций на одних и тех же двух таблицах в рельсах
Однако только исходный создатель темы должен иметь возможность редактировать ее. Итак, мне нужно иметь какую-то другую ассоциацию для обработки этих отношений, что-то вроде поля created_by_id в теме.
Таким образом, модель пользователя действует как две разные роли: они могут быть разработчиком темы AND/OR владельца темы. Отношение реализации зависит от таблицы join_users join; возникает вопрос: как правильно обращаться с этой вторичной ассоциацией? Нужно ли мне делать полиморфизм пользователей, а затем сделать ссылку created_by_id «владельцем»? Или что-то проще?
Большое вам спасибо за помощь!
Я вижу, что пользователь может создать несколько темы, но может ли Пользователь «использует» более одного раза за раз? или когда он используется в текущей теме «Пользователи»? – house9
Да, именно поэтому это ассоциация HABTM. Пользователь может создавать несколько тем и использовать несколько тем: подумайте о модели темы, как о документе; поэтому у вас может быть много документов, доступных для разных пользователей, но каждый документ только один создатель/редактор. – tmo256