J'ai le formulaire suivant pour photo_album qui utilise la fonction de formes imbriquées des Rails pour enregistrer les photos lors de la mise à jour de photo_album. Et avoir des problèmes avec la sélection de la valeur du bouton radio. Je veux qu'une seule des photos soit capable de sélectionner la couverture de l'album, mais en raison de la façon dont les rails produisent des identifiants et des noms d'éléments de formulaire, je suis capable de sélectionner toutes les photos comme couvertures d'album. Y a-t-il une solution de contournement?Rails: sélection de bouton radio pour les objets de formes imbriquées
<% form_for @photo_album do |f| %>
<%= f.error_messages %>
<% @photo_album.photos.each do |photo| %>
<% f.fields_for :photos, photo do |photo_fields| %>
<p>
<%= image_tag url_for_image_column(photo, "data", :thumb) %>
</p>
<p>
<%= photo_fields.label :title %>
<%= photo_fields.text_field :title %>
</p>
<p>
<%= photo_fields.label :body %>
<%= photo_fields.text_area :body %>
</p>
<p>
<%= photo_fields.radio_button :cover, "1" %>
<%= photo_fields.label :cover, 'Album Cover', :class => 'option' %>
<%= photo_fields.check_box :_delete %>
<%= photo_fields.label :_delete, 'Delete', :class => 'option' %>
</p>
<% end %>
<% end %>
<p>
<%= f.submit @photo_album.new_record? ? 'Create' : 'Update' %>
</p>
<% end %>
Et voici le code HTML produit par des rails (qui fait partie du problème) pour les boutons radio:
<p>
<input type="radio" value="1" name="photo_album[photos_attributes][0][cover]" id="photo_album_photos_attributes_0_cover_1"/>
<label for="photo_album_photos_attributes_0_cover" class="option">Album Cover</label>
<input type="hidden" value="0" name="photo_album[photos_attributes][0][_delete]"/><input type="checkbox" value="1" name="photo_album[photos_attributes][0][_delete]" id="photo_album_photos_attributes_0__delete"/>
<label for="photo_album_photos_attributes_0__delete" class="option">Delete</label>
</p>