10

抱歉,如果有人在某处提出并完整回答了这个问题。不确定我是否正在使用正确的 Rails 搜索这个问题。

我想根据存储在数据库中的字段创建一个 Rails 表单。这是我的模型到目前为止的样子。

class Field < ActiveRecord::Base
  belongs_to :form
end

class Form < ActiveRecord::Base
  has_many :fields
end

到目前为止,字段模型非常简单,带有 type:string 和 required:boolean 列。名称是我要创建的控件的名称(文本框、复选框、单选按钮)。理想情况下,我想做这样的事情:

<%= form_for [something here] do |f| %>
  <% @fields.each do |field| %>
    <%= field.type %><br />
  <% end %>
<% end %>

我正在努力寻找一种方法来用可以正确呈现 field.type 的标签替换 <%= field.type %> 行。

这可能吗?在将字段类型和值存储为 json/xml 的字段模型中使用有效负载列会更好吗?

4

1 回答 1

8

就像提到的@TuteC 一样,如果要保存类型,可以使用 .send 方法动态调用每个字段:

<%= form_for [something here] do |f| %>
  <% @fields.each do |field| %>
    <%= f.send(field.type.to_sym, field.name) %><br />
  <% end %>
<% end %>
于 2012-05-06T14:05:59.377 回答