创建一个可以动态创建新表单/数据库表的Rails应用程序?

时间:2014-09-03 16:14:33

标签: mysql sql ruby-on-rails activerecord

我是一名初级Rails开发人员,正在为朋友的业务创建一个Rails应用程序,我希望那里有人可以帮助回答我的问题!

我的朋友希望能够创建新表单以从她的客户那里收集信息。她不是程序员,想要一个简单的界面,像Google Forms一样易于使用。理想情况下,从这些表单收集的信息将存储在主数据库中,这样如果她丢失了客户端,她就不必手动删除该客户端在另一个数据库中的条目。

所以我需要提出一个解决方案:

  • 不强迫她触摸代码。
  • 与master数据库同步,以便在删除客户端时自动删除/取消表单条目。

有没有人知道这类问题的优雅解决方案?

1 个答案:

答案 0 :(得分:0)

这是非常棘手的,当你来制作表格来形成表格时,可能会使你的头部旋转一点。令人惊讶的是(至少来自我的谷歌搜索)似乎没有解决方案,例如宝石。

您需要考虑表单可以区别的所有不同方式,然后构建一个模型来对其进行建模。像

这样的东西
User
  has_many :form_templates

FormTemplate
  #columns: user_id
  belongs_to :user
  has_many :form_template_fields, :order => "position"

FormTemplateField
  #columns: form_template_id, position, name, field_type

FormEntry
  #columns form_template_id, user_id
  belongs_to :form_template
  belongs_to :user


FieldEntry
  #columns: form_template_field_id, form_entry_id, data
  belongs_to :form_entry
  belongs_to :form_template_field

现在,当某人在构建表单时,他们会创建一个FormTemplate对象,然后创建一个FormTemplateFields集合,以便以该形式存在。

当有人完成表单时,他们将创建一个FormEntry记录,链接到FormTemplate和一些FieldEntry记录,每个记录都将链接到FormTemplate中的一个FormTemplateField。

这不是我的头脑,但可能是思考它的一个很好的起点。