Je viens de configurer quelques modèles de base en utilisant échafaudage avec Rails, j'ai modifié les vues de sorte que je prenne une entrée d'un champ de texte et une boîte de sélection. Voici quelques extraits de code:Erreur de validation des rails avec les balises select
form_for(@town) do |f|
f.text_field :name
.
.
f.select :county_id, @counties.map{|c| [c.name, c.id]}
.
.
end
En utilisant la méthode de validation « validates_presence_of » pour le champ de texte et aucune validation sur la boîte de sélection, je peux entrer des valeurs et écrire avec succès à la base de données. Lorsque je tente de tester la validation par ne pas entrer quoi que ce soit dans le champ de texte, je reçois un NoMethodError avec le message suivant
You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.map
Note: il n'y a pas de validation sur la boîte de sélection
Si je commente la Ligne "validate_presence_of" Je peux écrire des données vierges sur la base de données sans problème. Toutefois, si j'écris un code de validation pour le champ de texte et que l'objet de formulaire entier devient nul apparemment ... la validation de Rails provoque-t-elle cela?
Toutes les pensées/commentaires sont grandement appréciés. Im using Rails 2.3.4
Où l'erreur se produit-elle? Cela se produit-il dans le contrôleur, la vue ou le modèle? Sur quelle ligne? Qu'est-ce que vous essayez exactement de faire qui déclenche l'erreur? – EmFi