#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #nested-forms
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #вложенные формы
Вопрос:
Я работаю над 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"
>
<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>
Комментарии:
1. можете ли вы опубликовать свою полную форму?
2. так ли выглядит ваша форма в вашем файле представления? и можете ли вы опубликовать свою модель event_venue и файлы контроллера?
3. Я думаю, что это проблема с child_index!!!
4. можете ли вы проверить, что
@event_venue.event_contact_details.build
строится? в идеале он должен просто инициализироваться с нулевыми значениями5. да, все значения равны нулю, #<Идентификатор детали контакта события: nil, имя: nil, телефон: nil, электронная почта: nil, event_id: nil, event_venue_id: nil, created_at: nil, updated_at: nil>