如何在Rails应用程序中创建记录的“模板”?

时间:2011-11-10 20:15:23

标签: ruby-on-rails ruby-on-rails-3 templates model

用户可以创建调查。调查有问题和问题有答案选项(即多选题)。

我想要做的是创建调查模板...这样用户只需点击一下按钮,就可以创建一个包含预设问题和答案选项的新调查。

我们已经有了一个功能正常的应用,所以这不是问题。而且我们已经能够复制/复制/克隆调查。也不是问题。

问题是,如何创建应用程序的任何用户都可以访问的一组预定义调查/问题/答案选项?

我是否将所有设置存储为某种templates表中的哈希值(然后只运行Survey.create({:questions => {:answers =>{}})?或者其他一些我不想的方法?

这有意义吗?需要进一步澄清吗?

2 个答案:

答案 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标志设置为高。然后,用户可以查看设置了此标志的所有调查并复制它们。