Modèle utilisateurSimple_form & Nested attributs Enregistrer modèle blanc en raison de la date attributs
class User < ApplicationRecord
has_many :experiences, dependent: :destroy
accepts_nested_attributes_for :experiences, reject_if: :all_blank, allow_destroy: true
end
Modèle Expérience
class Experience < ApplicationRecord
belongs_to :user
end
Mon entrée dans la vue (_experience_fields_user.html)
<div class="nested-fields">
<%= f.input :start_date as: :date, discard_day: true, order: [:month, :year], start_year: Date.today.year , end_year: Date.today.year - 37 %>
</div>
= > Donc, cela affiche 2 champs "Mois" et "Année"
Si je soumets ma forme, avec un champ vide les params sont:
"expertise"=>"", "start_date(3i)"=>"1", "start_date(2i)"=>"", "start_date(1i)"=>""
Mon problème: "start_date (3i)" => "1"
Cette params n'est pas vide (il est représenter la valeur du jour qui n'est pas affichée sur la vue), et ne permet pas de remplir la condition des attributs imbriqués "reject_if:: all_blank"
Il existe un moyen de changer la valeur d'un jour si le mois et l'année sont vides? Thx
vous pourriez faites-le fonctionner en remplaçant «as:: date» par «as:: string» dans votre formulaire. – Belder
Cela change le comportement de l'entrée et ce n'est pas le meilleur moyen pour une bonne expérience utilisateur – Etienne
Oui, vous avez raison. J'ai également eu ce problème dans le passé et j'essaie de me rappeler comment je l'ai résolu. [This] (https://stackoverflow.com/questions/29075404/how-can-i-generate-inputtype-date-with-simple-form) pourrait être une option. – Belder