Rails创建具有多个字段的多个记录

时间:2011-03-21 06:59:54

标签: ruby-on-rails

我正在尝试用两个我有

的集合创建多个记录

视图

<%= text_field_tag "user[]",'', :class=>"user_name" %>
    <%= radio_button_tag "is_checked[]", '1',false %><br>

    <%= text_field_tag "user[]",'', :class=>"user_name" %>
    <%= radio_button_tag "is_checked[]", '1',false %><br>

控制器

user = params[:user]

is_checked = params[:is_checked]

user.each do|a|

u = User.new

u.name = a

u.save

end

在这里,我想知道如何将is_checked值与名称一起保存..

我获得了用户和is_checked的集合,但我只能循环一个..

请指导我如何使用两个字段创建多个记录

感谢

1 个答案:

答案 0 :(得分:6)

您可能希望这样做:

查看:

<% 1.upto(2) do |i| %>
  <%= text_field_tag "fields[#{i}][user]",'', :class => "user_name" %>
  <%= radio_button_tag "fields[#{i}][is_checked]", '1', false %><br>
<% end %>

所以你会得到这样的东西:

"fields" => {
  "1" => {"user" => "value of 1", "is_checked" => "for 1"},
  "2" => {"user" => "value of 2", "is_checked" => "for 2"}
}

然后你可以在Controller中执行此操作:

params[:fields].each do |i, values| do
  # where i is the i-th set
  # and values are the user inputs

  u = User.create(values)
end

希望这有帮助! =)