J'essaye de créer un formulaire imbriqué en utilisant formtastic. J'ai inclus mon code ci-dessous, mais je rencontre des problèmes que j'ai également énumérés ci-dessous. Aucune suggestion? Merci.Utilisation de semantic_fields_for de Formtastic avec une association has_many
# Home model
class Home < ActiveRecord::Base
has_many :home_members
accepts_nested_attributes_for :home_members, :reject_if => :all_blank, :update_only => true, :allow_destroy => true
end
# Form builder in members/new.html.erb
<%= semantic_form_for @home, :url => home_members_path(@home), :html => { :method => :post }, :remote => true do |f| %>
<%= f.inputs do %>
<%= f.semantic_fields_for :home_members do |h| %>
<%= h.input :name %>
<%= h.input :email %>
<%= h.input :birthday, :as => :string %>
<% end %>
<% end %>
# members_controller's new method; @home is set in a before filter
def new
2.times{ @home.home_members.build }
end
Un utilisateur par défaut est créé quand une maison est enregistrée. Comment faire pour que le formulaire affiche uniquement les enregistrements nouvellement créés et non ceux existants?
Si le numéro 1 n'est pas possible, comment effectuer la mise à jour d'enregistrement existante? J'ai mis update_only sur accept_nested_attributes_for, mais un nouvel enregistrement est toujours créé.
Je fais 2.times {@ home.home_members.build} dans l'action du contrôleur. Lorsque j'imprime la taille de @ home.home_members, j'obtiens 3 (un existe déjà) comme prévu. Pourquoi le formulaire affiche-t-il uniquement deux ensembles d'entrées, l'un étant rempli avec les données home_member existantes?
Avez-vous encore besoin de réponses à cette question? Si vous avez trouvé une solution, pourriez-vous poster la réponse vous-même? –