【发布时间】:2016-02-26 04:27:25
【问题描述】:
我正在构建一个包含 html 表格的页面,用户可以在其中选择表格标题中的名称和表格行中的内容。
用户将信息输入到表单中,该表单将被解析为哈希并保存到数据库中。
这是一个示例,其中:key 将是散列的键(表头文本),:value 将是散列中的值(表列内容)。
<%= form_for([@page]) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.text_field :key1 %>
<%= f.text_field :value1 %>
<%= f.text_field :key2 %>
<%= f.text_field :value2 %>
<%= f.text_field :key3 %>
<%= f.text_field :value3 %>
<%= f.text_field :key4 %>
<%= f.text_field :value4 %>
<%= f.submit "Save" %>
<% end %>
我可以创建一个与page DB 关联的has_many 新数据库表,并将信息存储在该表中。然后,当我需要渲染视图时,可以将该数据重建为哈希。
但是,如果我可以将整个哈希保存到 page DB 中的一列中,那么我就不必在每次有人访问该页面时都重新构建哈希。
我正在努力想出如何在form_for 中做到这一点。
第一个问题是它需要page 表中的key 和value 列。一个简单的解决方法是将所有输入更改为<%= f.text_field :html_table %>(对于page 表中的html_table 列)。但随后它将无法区分散列中的键和值。而且我也没有办法告诉它把信息放在一个散列中,然后存储到page 表的html_table 列中。
不确定这是否可能,但在我继续构建 has_many 关联表并以这种方式设置之前询问一下也无妨。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 form-for