在同一页面上创建多个非嵌套模型

Dom*_*let 11 ruby-on-rails

有没有办法在同一页面上创建多个模型而不是嵌套在另一个模型中?

例如,我想要一个可以创建用户的表单.它有两个简单的字段,名字和姓氏,显示在同一行.我希望能够添加一个链接"添加新用户",这将创建(使用javascript)相同的行而不回发,并允许我在同一页面上创建两个用户.

如何使用rails实现这一目标?

MrY*_*iji 8

添加字段并只保留一个表单,一个提交按钮:

= form_tag(url: create_user_path, remote: true) do
  %table
    %tr
      %td= text_field_tag 'user[][first_name]'
      %td= text_field_tag 'user[][last_name]'

    %tr.actions
      %td= submit_tag 'Save'
      %td= button_tag 'Add new user form', id: 'add_user_form'

    %tr.new_user_row.hidden # hidden class matches the css rule: {display:none;}
      %td= text_field_tag "user[][first_name]"
      %td= text_field_tag "user[][last_name]"

:javascript # jQuery
  $('#add_user_form').bind('click', function(e) {
    var row = $('tr.new_user_row').clone().removeClass('hidden new_user_row');
    $('tr.actions').before(row); # will append the <tr> before the actions
  });
Run Code Online (Sandbox Code Playgroud)

在UsersController中:

def create
  params[:user].each do |attr|
    User.create(attr)
  end
end
Run Code Online (Sandbox Code Playgroud)