2011-12-05 25 views
0

首次发布Stack Overflow时,希望我能够做到这一点。Ruby/Rails中用户的基于Web的表单构建器

我正在用Ruby on Rails编写应用程序。不透露太多,前提是我们有组织和普通用户。组织有事件,需要用户在参与之前回答问卷。

我对这些模型/关系,我将使用相当肯定(这是不是真的那么重要/有关我的问题,我认为,只是想给背景):

  • 组织(一对多)事件
  • 事件(一对一)quesitonnaire)
  • 问卷(一对多)用户
  • (特定)响应(一对一)用户

的一部分,我有一个问题的是如何实现的问卷调查。我想赋予组织本质上写/建立自己形式的能力。如果可能的话,我希望使用代码远离它们(即任何DSL和什么)。

我想最简单的方法是给它们一定数量的文本区域响应,这样我就可以一直存储数据,而不必为如何配置存储这些数据而烦恼例如,也许每个事件只能有5个响应由用户的文本字段响应填充)。

我的理想是为组织能够动态地生成自己的方式 - 也许一个调查问卷将有1个文本输入,其次是3点的倍数的选择,并在年底,也许2简短的回答;另一个可能有5个多重选择,1个简短的答案;还有一个问卷可能只有一个文本输入...你明白了。

所以我看到了这个问题的两个部分 - 第一个是组织创建调查问卷的用户界面。我想象这不会非常困难 - 询问他们每种反应类型(MC,简答)他们想要放入表格中的数量,给他们重新排列它们的能力等。

问题的第二部分(我更关注的是)如何存储/访问这些数据。我猜测Ruby中没有动态属性类型的交易 - 将一些字段存储在未指定数量的部分以及其他字段中。我想我可以让它们单独的模型(即question_response模式,具有:问题:RESPONSE_TYPE,:响应,等等),但我相当肯定这可能是低效的。

我最初的猜测可能是序列化数据/使用json;我曾短暂地使用Drupal 6,这似乎是他们所采取的方式。我想知道其他人是否有任何经验/建议?我对Ruby非常陌生,所以我想知道是否有宝石出现,或者有什么可以帮助我尝试做什么。

谢谢!

+0

对于初学者来说,http://railscasts.com/episodes/196-nested-model-form-part-1 - 它几乎正是你想要的。 –

回答

0

,你可能觉得验船师的宝石看起来

http://vimeo.com/7051279 *略显陈旧如何做视频

https://github.com/breakpointer/surveyor

测量师不来与它自己的DSL这是比较容易使用(虽然有时可能会受到限制)。数据保存为一组问题 - 答案值,所以没有实际的具体模型(超出调查 - >问题(question_groups) - >答案)。

最初我的确看过让人们提交他们自己的Surveyor DSL规格 - 然后用于通过Rake命令生成实际调查。

我认为,如果你需要建立一个动态模型(并保存数据),它是可能的,虽然我不是不知道,如果你能得到的Rake任务运行建立在实际的表由于权限限制而动态的方式。

看一看http://ruby-metaprogramming.rubylearning.com/和元编程红宝石:计划一样由保罗·佩罗塔Ruby的优点,对于一些初学者。