Как создать «шаблон» записей в приложении Rails? - PullRequest
3 голосов
/ 11 ноября 2011

Пользователи могут создавать опросы.У опроса есть вопросы, а у вопросов есть варианты ответа (т.е. вопрос с несколькими вариантами ответов).

Что я хочу сделать, это создать шаблоны опросов ... чтобы пользователи могли одним нажатием кнопки создать новый опросс заранее заданными вопросами и вариантами ответов.

У нас уже есть работающее приложение, так что вопрос не в этом.И у нас уже есть возможность дублировать / копировать / клонировать опросы.Тоже не вопрос.

Вопрос в том, как мне создать набор предопределенных вариантов опросов / вопросов / ответов, к которым имеет доступ любой пользователь приложения?

Сохраняю ли я всенастройки в виде хэша в какой-то таблице templates (а затем просто запустить Survey.create({:questions => {:answers =>{}})? Или какой-то другой метод, о котором я просто не думаю?

Имеет ли это смысл? Требуются дополнительные пояснения?

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Вы можете использовать Наследование отдельных таблиц для модели Survey, чтобы различать Surveys и SurveyTemplates.Таким образом, вы также можете лучше интегрировать авторизацию.

При использовании STI в Rails модели требуется атрибут: type, и Rails сохраняет имя класса в этом атрибуте для каждой записи.

См .:

http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html

2 голосов
/ 11 ноября 2011

Почему бы вам не добавить флаг (логический) с именем is_template в модель опроса? Затем вы можете просто создать обычный опрос и установить флаг is_template. Затем пользователи могут просматривать все опросы с установленным флагом и копировать их.

...