Ruby on rails 嵌套字段文本字段值不会传递给Rails 3.2中的控制器

Ruby on rails 嵌套字段文本字段值不会传递给Rails 3.2中的控制器,ruby-on-rails,nested-forms,Ruby On Rails,Nested Forms,我正在尝试创建一个表单,其中嵌套的属性是在新选项卡中生成的。我已经将模型设置为接受嵌套属性,但是当我提交表单时,我为文本字段设置的任何值都将作为空白传递,但是控制器将嵌套字段传递给模型 Parameters: {"utf8"=>"✓", "authenticity_token"=>"x", "group"=>{"pilgrims_attributes"=>{"1399738268141"=>{"surname"=>"", "name"=>"", "mid

我正在尝试创建一个表单,其中嵌套的属性是在新选项卡中生成的。我已经将模型设置为接受嵌套属性,但是当我提交表单时,我为文本字段设置的任何值都将作为空白传递,但是控制器将嵌套字段传递给模型

Parameters: {"utf8"=>"✓", "authenticity_token"=>"x", "group"=>{"pilgrims_attributes"=>{"1399738268141"=>{"surname"=>"", "name"=>"", "middle"=>"", "aka"=>"", "prefix"=>"", "suffix"=>"", "nationality"=>"", "passport_number"=>"", "expiration(2i)"=>"5", "expiration(3i)"=>"10", "expiration(1i)"=>"2014", "date_of_birth(2i)"=>"5", "date_of_birth(3i)"=>"10", "date_of_birth(1i)"=>"2014", "accommodation"=>"", "roommate_id"=>"", "flight"=>"", "seat_id"=>"", "special_diet"=>"", "status"=>"Pilgrim"}}, "email"=>"", "telephone"=>"", "secondary_telephone"=>"", "address"=>"", "country_code"=>"", "state_code"=>"", "city"=>"", "zip"=>""}, "commit"=>"Create Group", "trip_id"=>"1"}
因此,它似乎发现它需要提交字段,并在_正确选择的日期传递默认值,但是我在文本字段中输入的值只是空白

因此,目前我没有使用fields_作为块,但似乎不需要,因为有东西正在传递给控制器。如果我确实需要为块使用
fields\u,我应该将其放置在html标记中的什么位置

守则:

我的表格:

<%= simple_form_for [@trip, @group] do |f| %>
   <ul id="infoTabs" class="nav nav-tabs">
     <li class="active"><a href="#pilgrim_info" data-toggle="tab">Pilgrims</a></li>
     <li><a href="#contact" data-toggle="tab">Contact Info</a></li>
     <li><a href="#payments" data-toggle="tab">Payments</a></li>
   </ul>

<div class="tab-content">

   <div id="pilgrim_info" class="tab-pane active">
        <ul id="pilgrimTabs" class="nav nav-pills">
          <li><%= link_to_add_pilgrim_fields('+ Add Pilgrim', f, :pilgrims, :data => {:toggle => 'pill'}, :class => 'add-pilgrim') %></li>
        </ul>

        <div class="tab-content">
        </div>
  </div>

</div>
<div class="row-fluid">
  <div class="actions span12">
    <%= f.submit :class => 'btn btn-primary' %>
    <%= link_to 'Cancel', trip_groups_path(@trip), :class => "btn" %>
  </div>
</div>
以及添加字段的javascript函数:

function add_pilgrims_fields(link, association, content) {
   var new_id = new Date().getTime();
   var regex = new RegExp("new_" + association, "g");
   var display_id = $(".nav-pills").children().length;
   $('.add-pilgrim').closest('li').after('<li><a href="#pilgrim'+ new_id +'" data-toggle="pill">New Pilgrim ' + display_id + '</a><span>x</span></li>');
   $('.tab-content').append('<div class="tab-pane" id="pilgrim'+new_id+'">' + content.replace(regex, new_id) + '</div>');
}
函数添加字段(链接、关联、内容){
var new_id=new Date().getTime();
var regex=新RegExp(“新的”+关联,“g”);
var display_id=$(“.nav”).children().length;
$('add pilgrim')。最近('li')。在('li>x')之后;
$('.tab content').append(''+content.replace(regex,new_id)+'');
}

Javascript函数添加了一点额外的html。因为我有两个“.tab content”类元素,它将它附加到两个选项卡区域。当提交表单时,它提交空白表单,因为生成的两个选项卡都具有相同的ID。

我换了这行

$('.tab-content').append('<div class="tab-pane" id="pilgrim'+new_id+'">' + content.replace(regex, new_id) + '</div>');
$('.tab content').append(''+content.replace(regex,new_id)+'');
}

$('Traveler\u form\u tabs')。追加(“”+content.replace(regex,new\u id)+“”); }

并在选项卡中添加了一个id

<div id="pilgrim_info" class="tab-pane active">
    <ul id="pilgrimTabs" class="nav nav-pills">
      <li><%= link_to_add_pilgrim_fields('+ Add Pilgrim', f, :pilgrims, :data => {:toggle => 'pill'}, :class => 'add-pilgrim') %></li>
    </ul>

    <div class="tab-content" id="traveller_form_tabs">
    </div>

  • {:toggle=>'pill'},:class=>'addpilgrim')%>
它现在正在提交我在字段中输入的值

$('.tab-content').append('<div class="tab-pane" id="pilgrim'+new_id+'">' + content.replace(regex, new_id) + '</div>');
<div id="pilgrim_info" class="tab-pane active">
    <ul id="pilgrimTabs" class="nav nav-pills">
      <li><%= link_to_add_pilgrim_fields('+ Add Pilgrim', f, :pilgrims, :data => {:toggle => 'pill'}, :class => 'add-pilgrim') %></li>
    </ul>

    <div class="tab-content" id="traveller_form_tabs">
    </div>