Dans mon application Rails j'ai un modèle Kid
et un modèle Allergy
où un Kid
has_many Allergies
. J'ai également créé un formulaire imbriqué de sorte que les champs allergy
sont dans le formulaire kid
lors de la création d'un nouveau kid
. Voilà ce que j'ai dans mon contrôleur kid
:Rails enregistrer seulement l'enregistrement si les champs ne sont pas vides pour les formulaires imbriqués
def new
@kid = Kid.new
allergy = @kid.allergies.build
end
et c'est dans mon index.html.erb nichée dans ma création kid
forme:
<%= f.fields_for :allergies, Allergy.new do |u| %>
<%= u.label :description, "Description", class: "control-label" %>
<%= u.text_field :description, class: "input-sm form-control" %>
<%= u.label :symptoms, "Symptoms", class: "control-label", %>
<%= u.text_field :symptoms, class: "input-sm form-control" %>
<%end%>
Cela fonctionne bien pour insérer un seul enregistrement allergy
dans le modèle Allergy
, mais je veux être en mesure d'énumérer jusqu'à 5 allergy
entrées, et seulement insérer ceux que l'utilisateur remplit, comme kid
pourrait avoir une quantité variable de allergies
.
J'ai utilisé cet article: http://vicfriedman.github.io/blog/2015/07/18/create-multiple-objects-from-single-form-in-rails/
Cependant, je ne pouvais pas faire ce travail pour une forme imbriquée. Toute aide est appréciée, merci!
Avez-vous essayé ': reject_if'? http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html –