加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3:用户创建的自定义表单?

发布时间:2020-12-16 22:10:44 所属栏目:百科 来源:网络整理
导读:我试图围绕如何允许用户创建具有所有字段类型的自定义表单.如果有一个宝石将是伟大的,但我似乎找不到任何地方. 所以我有一个这样的数据库设置: t.integer :form_id t.string :name t.string :hint t.integer :position t.string :field_type t.boolean :req
我试图围绕如何允许用户创建具有所有字段类型的自定义表单.如果有一个宝石将是伟大的,但我似乎找不到任何地方.

所以我有一个这样的数据库设置:

t.integer :form_id
  t.string :name
  t.string :hint
  t.integer :position
  t.string :field_type
  t.boolean :required
  t.integer :size
  t.boolean :multiple
  t.text :values
  t.timestamps

这几乎是我所在的地方.我不能想像如何重复通过field_type并返回值,以及将它们与实际填写的表单相关联.

谢谢

解决方法

我假设你有一些Form模型,然后是某种Field模型,一个Form has_many:fields.正确?

构建表单非常简单:检索表单,迭代所有字段,并根据类型,呈现正确的代码.如果您使用像formtastic或simple_form这样的代码,这个代码很简单.

但为了使其工作,在控制器内部,您将必须创建一个虚拟对象,该对象具有所有字段的getter和setter.你可以使用一个简单的哈希,或者OpenStruct(更好).在迭代过程中,使用空或默认值设置散列.

我想你也想保存一个表单的结果?我认为最简单的方法是使用这样的模型

t.form_id :integer
t.fields_data :text

并将输入的数据存储在例如文本字段中. json还是什么
你也可以做一些类似的事情

class FormData
  belongs_to :form
end

class FormDataField
  belongs_to :form_data
  belongs_to :form_field
end

虽然这是最干净的(您可以查询某个表单的填写字段的值),但这可能太多的开销.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读