0

我有 rails form_tag helper 来保存 do..each 循环提供的数据。这是我的表格:

          <%= form_tag (customers_path) do |f| %>
                 < @contacts.each do |c|%>
                     <%= check_box_tag "accept[]", c %><%= c[:email] %>
                 <% end %>  
                <%= submit_tag ("Save") %>
          <%end%>

此表单保存选中复选框的联系人。这就是 c 具有的内容:

 "accept"=>["{:id=>\"2f310f1d9b8f\",
 :first_name=>\"San\",
   :last_name=>\"Jori\",
    :name=>\"Jori,San\",
  :email=>\"abc@qwe.com\",
    :gender=>nil,
  :birthday=>nil,
  :profile_picture=>nil,
    :relation=>nil}"],
    "commit"=>"Save"

我只想从上面的哈希中保存 :name 和 :email 。这是我的控制器的创建操作:

    if params[:accept].present?
    params[:accept].each do |customer|
        @customer = current_user.customers.new(:name => customer[:name], :email => customer[:email])
    @customer.save
    end 
  redirect_to customers_path
    end

但它给出的错误是:

   no implicit conversion of Symbol into Integer

谁能告诉我如何使它工作?

谢谢!

4

1 回答 1

0

而不是使用

@customer = current_user.customers.new(:name => customer[:name], :email => customer[:email])

尝试

@customer = current_user.customers.build(:name => customer[:name], :email => customer[:email])
于 2013-06-24T08:25:47.140 回答