Ruby on rails Rails—如何让表单将来自多个输入的数据保存为散列
我正在构建一个包含html表的页面,用户可以在其中选择表头中的名称和表行中的内容 用户将把信息输入到表单中,表单将被解析成散列并保存到数据库中 下面是一个示例,其中Ruby on rails Rails—如何让表单将来自多个输入的数据保存为散列,ruby-on-rails,ruby,ruby-on-rails-4,form-for,Ruby On Rails,Ruby,Ruby On Rails 4,Form For,我正在构建一个包含html表的页面,用户可以在其中选择表头中的名称和表行中的内容 用户将把信息输入到表单中,表单将被解析成散列并保存到数据库中 下面是一个示例,其中:key将是散列(表标题文本)的键,:value将是散列(表列内容)中的值 我可以创建一个新的数据库表,该表与页面数据库有许多关联,并将信息存储在该表中。然后,当我需要渲染视图时,可以将该数据重建为散列 但是,如果我可以将整个散列保存到页面DB中的一列中,那么我就不必在每次有人访问该页面时重新生成散列 我正在努力想出如何在的表单中
:key
将是散列(表标题文本)的键,:value
将是散列(表列内容)中的值
我可以创建一个新的数据库表,该表与页面数据库有许多关联,并将信息存储在该表中。然后,当我需要渲染视图时,可以将该数据重建为散列
但是,如果我可以将整个散列保存到页面
DB中的一列中,那么我就不必在每次有人访问该页面时重新生成散列
我正在努力想出如何在
的表单中实现这一点
第一个问题是它需要页面
表中的键
和值
列。一个简单的解决方法是将所有输入更改为
(对于html\u表页面表中的列)。但是它将无法区分散列中的键和值。我也没有办法告诉它把信息放到一个散列中,然后存储到页面
表的html\u表
列中
不确定这是否是可能的事情,但在我继续构建有许多关联表并以这种方式进行设置之前,问一下也无妨。我对你的问题感到困惑
您不能在控制器操作中构建这样的散列吗
html_table = {
params[:key1] => params[:value1],
params[:key2] => params[:value2],
params[:key3] => params[:value3],
params[:key4] => params[:value4]
}
然后将其保存到@page.html_table
属性
编辑:
在本例中,表单与特定对象的属性无关。因此,您应该使用form_标记()而不是form_for()
例如:
<%= form_tag "/pages_controller/build_html_table" do %>
<%= text_field_tag "key1" %>
<%= text_field_tag "value1" %>
<%= submit_tag "Save" %>
<% end %>
这是可能的,但是表单会是什么样子text\u字段:key1
没有f.
?@user3234020是的,您应该使用不同的帮助程序。查一下编辑好的,我明天试一试。
<%= form_tag "/pages_controller/build_html_table" do %>
<%= text_field_tag "key1" %>
<%= text_field_tag "value1" %>
<%= submit_tag "Save" %>
<% end %>