嵌套表单accepts_nested_attributes_for给出动态数组 - Rails4

时间:2014-06-26 06:29:10

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 nested-forms

我正在使用嵌套表单的Rails4,accepts_nested_attributes_for我可以生成嵌套表单,但是当我检查表单时,它给动态数组提供表单。

 <input type="text" name="event_venue[event_contact_details_attributes][1403763304978][name]" id="event_venue_event_contact_details_attributes_1403763304978_name" class="form-control">

但它应该是,

<input type="text" name="event_venue[event_contact_details_attributes][1][name]" id="event_venue_event_contact_details_attributes_1_name" class="form-control"&GT;

<div class="formWrapper">
  <div class="col-md-6">
    <div class="form-group">
      <label for="exampleInputEmail1">Name</label>
      <input type="text" name="event_venue[event_contact_details_attributes][1403764358820][name]" id="event_venue_event_contact_details_attributes_1403764358820_name" class="form-control">
    </div>
    <div class="form-group">
      <label for="exampleInputEmail1">Phone</label>
      <input type="text" name="event_venue[event_contact_details_attributes][1403764358820][telephone]" id="event_venue_event_contact_details_attributes_1403764358820_telephone" class="form-control">
    </div>
    <div class="form-group">
      <label for="exampleInputEmail1">Email</label>
      <input type="text" name="event_venue[event_contact_details_attributes][1403764358820][email]" id="event_venue_event_contact_details_attributes_1403764358820_email" class="form-control">
    </div>
    <div class="clearfix"></div>
    <input type="hidden" value="false" name="event_venue[event_contact_details_attributes][1403764358820][_destroy]" id="event_venue_event_contact_details_attributes_1403764358820__destroy"><a onclick="remove_fields(this); return false;" href="#">remove</a>
  </div>
</div>

你能帮我解决我错过的事情...... !!!

在第一个嵌套表单中设置它正确,

<div class="formWrapper">
  <div class="col-md-6">
    <div class="form-group">
      <label for="exampleInputEmail1">Name</label>
      <input type="text" value="AS" name="event_venue[event_contact_details_attributes][0][name]" id="event_venue_event_contact_details_attributes_0_name" class="form-control">
    </div>
    <div class="form-group">
      <label for="exampleInputEmail1">Phone</label>
      <input type="text" value="AS" name="event_venue[event_contact_details_attributes][0][telephone]" id="event_venue_event_contact_details_attributes_0_telephone" class="form-control">
    </div>
    <div class="form-group">
      <label for="exampleInputEmail1">Email</label>
      <input type="text" value="AS" name="event_venue[event_contact_details_attributes][0][email]" id="event_venue_event_contact_details_attributes_0_email" class="form-control">
    </div>
    <div class="clearfix"></div>
    <input type="hidden" value="false" name="event_venue[event_contact_details_attributes][0][_destroy]" id="event_venue_event_contact_details_attributes_0__destroy"><a onclick="remove_fields(this); return false;" href="#">remove</a>
  </div>
</div>

活动场地模型,

has_many :event_contact_details, :dependent => :destroy
    accepts_nested_attributes_for :event_contact_details, allow_destroy: true

控制器,

def new
    @event_venue = EventVenue.new
    @event_venue.event_contact_details.build
  end

形式,

<%= f.fields_for :event_contact_details do |builder| %>
            <%= render :partial => 'event_venues/event_contact_detail_fields', 
                       :locals => { :f => builder } %>
          <% end %>

          <p><%= link_to_add_fields "Add More", f, :event_contact_details  %></p>   

0 个答案:

没有答案