У меня есть текущая структура модельнуюКак иметь HAS_ONE с псевдонимом в Rails 4+
publisher
---------
has_many :digest_templates
has_one :active_template
digest_templates
---------
belongs_to :publisher, optional: true
Структура базы данных:
publishers
---------
t.string :name
t.string :permalink
t.string :api_key
t.string :domain
t.reference :digest_template, index: true, foreign_key: true
digest_templates
---------
t.text :html
t.text :text
t.references :publisher, index: true, foreign_key: true
t.boolean :global, default: false # this is for internally developed templates
В любой момент времени, издатель может иметь один активного шаблона, но может создавать любое количество настраиваемых шаблонов для себя. Я хочу сделать так, чтобы следующие вызовы возможны:
Publisher.templates
и Publisher.active_template
Основная проблема заключается в том, что у меня есть глобальные шаблоны и созданные пользователем шаблоны в той же таблице. Можно ли работать с этой архитектурой? Или есть лучший способ сделать что-то?
активный шаблон будет также шаблон дайджеста в то же время? Если это так, вы дважды сохраняете одни и те же данные в базе данных. –
@ArslanAli Активный_template - это только ссылка на идентификатор digest_template, который активен. –
Кажется, что это сработает. В чем проблема, с которой вы сталкиваетесь? Что должно вернуть 'publisher.templates'? Должен ли он просто вернуть все ассоциации 'digest_templates' из отношения' has_many'? –