J'ai un formulaire_ pour créer un nouvel enregistrement. J'ai défini des méthodes getter et setter pour accéder au champ de formulaire dans ma vue. Voici mes méthodes setter getter ANS avec mon point de vue de la forme,getter n'obtenant pas de valeurs pour le nouvel enregistrement sur les rails de validation 4
Getter & Setter Méthodes respectivement:
def manufacturer_model_name
self.manufacturer_models.pluck(:name).join(', ') unless self.manufacturer_models.blank?
end
def manufacturer_model_name=(names)
names = names.split(',').map{|n| n.strip}.delete_if(&:empty?) if names.present?
names.uniq.each do |name|
id = ManufacturerModel.where(:name => name, :manufacturer_id => manufacturer.id).first_or_create.id
if self.new_record?
self.user_skill_manufacturer_models.build(:user_skill_id => self.id, :manufacturer_model_id => id)
else
self.user_skill_manufacturer_models.where(:user_skill_id => self.id, :manufacturer_model_id => id).first_or_create.id
end
end if names.present?
end
Form Voir:
= f.text_field :manufacturer_model_name, :class => 'form-control
Mon problème est que, mon champ d'entrée est saisie semi-automatique avec multiple défini sur true, pour obtenir plusieurs valeurs. lorsque l'utilisateur entre plusieurs valeurs séparées par des virgules et soumet le formulaire et s'il y a des erreurs sur le formulaire, ma nouvelle action est restituée et l'utilisateur perd toutes les valeurs saisies, le forçant à tout ré-entrer. Comment puis-je résoudre ce problème?