【问题标题】:Create a Rails app that can dynamically create new forms/database tables?创建一个可以动态创建新表单/数据库表的 Rails 应用程序?
【发布时间】:2014-09-03 16:14:32
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 聘请熟练的开发人员。

标签: mysql sql ruby-on-rails activerecord


【解决方案1】:

这很棘手,并且可能会让您头晕目眩,例如,当您制作用于构建表单的表单时。令人惊讶的是(至少从我的谷歌搜索来看)似乎已经没有解决方案,例如宝石。

您需要考虑表单可能不同的所有不同方式,然后构建一个模式来对其进行建模。类似的东西

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 中的一个 FormTemplateFields。

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

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    相关资源
    最近更新 更多