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

lam*_*rin 1 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>
Run Code Online (Sandbox Code Playgroud)

调节器

user = params[:user]

is_checked = params[:is_checked]

user.each do|a|

u = User.new

u.name = a

u.save

end
Run Code Online (Sandbox Code Playgroud)

在这里,我想知道如何保存is_checked值以及名称..

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

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

谢谢

Sta*_*len 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 %>
Run Code Online (Sandbox Code Playgroud)

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

"fields" => {
  "1" => {"user" => "value of 1", "is_checked" => "for 1"},
  "2" => {"user" => "value of 2", "is_checked" => "for 2"}
}
Run Code Online (Sandbox Code Playgroud)

然后你可以在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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!=)