用户可以创建调查。调查有问题和问题有答案选项(即多选题)。
我想要做的是创建调查模板...这样用户只需点击一下按钮,就可以创建一个包含预设问题和答案选项的新调查。
我们已经有了一个功能正常的应用,所以这不是问题。而且我们已经能够复制/复制/克隆调查。也不是问题。
问题是,如何创建应用程序的任何用户都可以访问的一组预定义调查/问题/答案选项?
我是否将所有设置存储为某种templates
表中的哈希值(然后只运行Survey.create({:questions => {:answers =>{}})
?或者其他一些我不想的方法?
这有意义吗?需要进一步澄清吗?
答案 0 :(得分:3)
您可以对Survey模型使用Single Table Inheritance,以区分Surveys和SurveyTemplates。 这样您还可以更好地集成授权。
在Rails中使用STI时,模型需要:type属性,Rails将类名存储在每个记录的该属性中。
见:
http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html
答案 1 :(得分:2)
为什么不在调查模型中添加一个名为is_template
的标志(布尔值)?然后,您可以创建一个普通的调查并将is_template
标志设置为高。然后,用户可以查看设置了此标志的所有调查并复制它们。