fl0*_*00r 3 ruby forms activerecord ruby-on-rails dynamic-forms
我正在研究动态表单生成器.有人可以创建如下字段:字符串,文本,布尔值,数字,文件等.
是否存在用于存储来自此类动态表单的数据的宝石或指南?
我的意思是我可以为每种数据类型创建一些表,或者我可以将它们全部存储为TEXT
带有应该转换的类型的标志.
UPD
或者我最好在这里使用nosql?
我相信Mongodb是这个应用程序的正确选择,因为它不强制执行任何模式,它是任意数据的一个很好的选择.
同样,它确实支持您所期望的所有数据类型.这很容易.
有一个看起来像这样的表单集合(Ruby Mongoid代码)
class XForm
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Paranoia
field :name, :type => String
field :user, :type => BSON::ObjectId
embeds_many :formfields
end
Run Code Online (Sandbox Code Playgroud)
和
class Formfields
include Mongoid::Document
field :name, :type => String
field :kind, :type => String
#field :value, :type => String -> dont add it in formfields, make it dynamic sine the type varies
embedded_in :xform
end
Run Code Online (Sandbox Code Playgroud)
要将值字段添加为动态字段,需要allow_dynamic_fields: true
在mongoid.yml中启用
并创建一个这样的新领域
form = XForm.new(:name=>'test form',:user => current_user.id)
#for integer field
form.formfields << Formfields.new(:name => "Age",:kind=>"Integer", :value => 21)
#for bool field
form.formfields << Formfields.new(:name => "isMarried",:kind=>"Boolean",:value => true)
#for string field
form.formfields << Formfields.new(:name => "name",:kind=>"String",:value => "ram")
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
归档时间: |
|
查看次数: |
1270 次 |
最近记录: |