0

在我看来,我这样做:

<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,但它只用来保存一个对象。

将数组发送回服务器进行保存的最佳方法是什么?

4

2 回答 2

0

我认为您可以使用 ajax 以便使用 jquery 序列化表中的数据并将数据发布回服务器端。所以你可以保存数组。

于 2012-11-01T05:35:44.783 回答
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 %>

然后参数将很好地分组在一个哈希中

{'post' => {'question' => 'xxx' }, 'email_stat' => {'counter' => 'xxx' , 'last_sent' =>  'xxx', 'email' => 'xxx'}} 

您可以对其进行解析以更新两个模型。您需要做的就是正确命名 text_field。

于 2012-11-01T13:54:29.673 回答