2017-04-01 2 views
0

J'ai un formulaire imbriqué avec un objet parent (full_application) et une collection d'objets enfants (fullapplication_districts) via une association has_many. Je tente d'autoriser la suppression d'objets enfants individuels sur le formulaire (via javascript) mais pour ce faire, je dois être capable de saisir l'identifiant de chaque objet enfant dans la vue pour le transmettre au contrôleur. fields_for crée un champ de saisie masqué pour l'identifiant, mais je n'arrive pas à comprendre comment récupérer l'identifiant. Dans l'exemple ci-dessous, l'enregistrement est le 13ème de la liste des objets enfants rendus.Rails accédant à fields_for hidden_field id

<input type="hidden" value="538" name="full_application[fullapplication_districts_attributes][12][id]" id="full_application_fullapplication_districts_attributes_12_id"> 

Voici la configuration de la forme dans la vue:

<%= form_for(@full_application, url: full_applications_edit_path, method: :put) do |f| %> 
    <%= f.fields_for :fullapplication_districts do |fad| %> 
    <%= fad.collection_select :district_id, District.all, :id, :name, {include_blank: true}, {class: 'form-control'} %> 
    <%= fad.number_field :percent_one, class: 'form-control', step: :any %> 
    <%= fad.number_field :percent_two, class: 'form-control', step: :any %> 
    <%= fad.number_field :percent_three, class: 'form-control', step: :any %> 
    <%= link_to full_applications_districts_path(???), method: :delete, remote: true, data: { confirm: "Are you sure you want to delete this record?" } do %> 
     <i class="fa fa-trash"></i> 
    <% end %> 
    <% end %> 
<% end %> 

Répondre

1

Vous pouvez utiliser: fad.object ou fad.object.id. Cela retournera à l'instance fullapplication_district.

<%= link_to full_applications_districts_path(fad.object), method: :delete, remote: true, data: { confirm: "Are you sure you want to delete this record?" } do %> 
    <i class="fa fa-trash"></i> 
<% end %> 
+1

Génial, merci beaucoup! – CChandler81

+0

Vous êtes les bienvenus :) – fongfan999