在我看来,我这样做:
<table border="1">
<tr>
<th>Question</th>
<th>Counter</th>
<th>Lastsent</th>
<th>Email</th>
</tr>
<% @email_stats.each do |email_stat| %>
<% post = Post.find(email_stat.postId) %>
<% if post.posttype == 'Question' %>
<tr>
<td><%= post.question %></td>
<td><%= email_stat.counter%></td>
<td><%= email_stat.lastsent %></t>
<td><%= text_field_tag 'email', email_stat.email%></td>
</tr>
<% end %>
</table>
这就是我所拥有的:对于某些对象,电子邮件将为“空白”,因此我想显示表格中的所有记录,并允许主持人输入电子邮件,然后单击“保存存储”。
我使用form_for
,但它只用于保存单个对象。
将阵列发送回服务器进行保存的最佳方法是什么?
答案 0 :(得分:0)
我认为您可以使用ajax,以便使用jquery序列化表中的数据并将数据发布回服务器端。所以你可以保存数组。
答案 1 :(得分:0)
使用form_tag而不是form_for可以实现预期的行为。实施例
<%= form_tag :url => , :html => {:id=> , :method => , :class => ""} do %>
<% text_field_tag <id>, <default_value>, :name=>"post[question]" %>
<% text_field_tag <id>, <default_value>, :name=>"email_stat[counter]" %>
<% text_field_tag <id>, <default_value>, :name=>"email_stat[last_sent]" %>
<% text_field_tag <id>, <default_value>, :name=>"email_stat[email]" %>
<%= submit_tag 'save' %>
<% end %>
然后将params很好地分组为像
这样的哈希{'post' => {'question' => 'xxx' }, 'email_stat' => {'counter' => 'xxx' , 'last_sent' => 'xxx', 'email' => 'xxx'}}
您可以解析以更新两个模型。您需要做的就是正确命名text_field。