Je rencontre un problème lors de l'affichage d'une liste de cases à cocher 'catégorie' lorsque j'essaie de les imbriquer dans un formulaire fields_for.Comment afficher une liste de cases à cocher HABTM dans un modèle imbriqué
J'ai un modèle 'produit' qui a 'has_many' 'photos' qui 'has_and_belongs_to_many' 'catégories'. Je suis à peu près sûr que toutes mes associations dans mes modèles sont correctes, tout comme ma table de jointures pour la relation 'photos' et 'catégories'.
Nesting juste la « photo » intérieur du « produit » fonctionne pour moi: modèle
<%= form_for(@product) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<% f.fields_for :photos do |builder| %>
<%= builder.label :name, "Photo name" %>
<%= builder.text_field :name %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Mais je ne peux pas ajouter la « catégorie » avec les cases à cocher. Voici ce qui ne fonctionne pas:
<%= form_for(@product) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<% f.fields_for :photos do |builder| %>
<%= builder.label :name, "Photo name" %>
<%= builder.text_field :name %>
<div class="field">
Categories:
<% for category in Category.find(:all)%>
<%= check_box_tag "photo[category_ids][]", category.id, @photo.categories.include?(category) %>
<%= category.name %>
<% end %>
</div>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Le check_box_tag et l'absence d'un assistant formulaire pour faire du vélo dans la liste des catégories qui me vissage. quelqu'un peut-il aider s'il vous plait? Merci.
MISE À JOUR: Je peux l'obtenir pour travailler avec cette boîte de sélection, mais je suis en train de le faire travailler avec les cases à cocher:
<%= f.collection_select :category_ids, Category.find(:all, :order => 'name'), :id, :name, {}, :multiple => true %>
infos connexes, peut-être que cela vous inspire se: http: // Railscasts. com/episodes/17-habtm-checkboxes – giraff
Donc un produit peut avoir beaucoup de photos, qui à leur tour peuvent avoir plusieurs catégories. Je cours dans quelque chose de similaire moi-même. Je suis capable d'afficher les cases à cocher mais les données ne sont pas conservées lors de la création ou de la modification. Afin de les faire montrer, je crois que vous devriez changer '@ photo.categories.include?' En '@ product.photos.first.include?' De là, je ne sais pas où aller. Ce qui est exactement pourquoi j'ai "commenté" et n'a pas "répondu". – Tass