ruby-on-rails - rails 3 : User Created custom forms?

标签 ruby-on-rails ruby ruby-on-rails-3 forms

我正在努力思考如何允许用户创建具有所有字段类型的自定义表单。如果有一颗 gem 就好了,但我似乎无法在任何地方找到。

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

  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代码非常简单。

但要使其正常工作,您必须在 Controller 内部创建一个虚拟对象,该对象具有适用于所有字段的 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

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

关于ruby-on-rails - rails 3 : User Created custom forms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942164/

相关文章:

Ruby on Rails 开关

ruby-on-rails - 如何从 URL 下载文件并将其保存在 Rails 中?

ruby-on-rails - Ruby on rails form_for 和不可数模型

ruby-on-rails - has_many 的表格 :through

ruby-on-rails - rails 和 ActiveRecord : DRY use same logic in scope and boolean method

ruby-on-rails-3 - Rails 操作缓存过期后刷新

java - Linux 上的 RubyMine

ruby - 延迟作业作业未执行

ruby-on-rails - 你如何在 heroku 中运行 "Rails Runner"?

ruby-on-rails - Rails 3.1 - has_and_belongs_to_many 已弃用?