J'ai remarqué que mon application mettait automatiquement tous mes processus à exécution dès qu'ils ont été créés. J'ai regardé à travers, je ne pouvais pas trouver pourquoi la date était mise à jour sans qu'on me le dise, mais j'ai trouvé que l'un de mes points de vue cherchait un domaine qui n'existait pas. J'ai créé le champ 'complete', l'ai défini comme un booléen non nul et j'ai essayé à nouveau. Je recommençais à le définir automatiquement à true, donc j'ai essayé de le définir comme faux explicitement dans la méthode create, cela ne fonctionnait toujours pas: S j'ai donc essayé de mettre un champ caché dans le formulaire. Je reçois maintenant une erreur "colonne ne peut pas être nulle" même si la valeur est fournie.rails La colonne ne peut pas être nulle:
Comme vous pouvez le voir il y a clairement un paramètre pour la valeur complète. Qu'est-ce que je rate?
erreur:
Mysql::Error: Column 'complete' cannot be null: INSERT INTO `decommissions` (`completed_at`, `keep_backups`, `services_stopped`, `updated_at`, `operating_system_id`, `comments`, `username`, `disposition`, `stakeholder_email`, `complete`, `alias`, `storage`, `model_id`, `contract_maintenance`, `created_at`) VALUES(NULL, 1, 1, '2010-10-18 00:32:37', 1, NULL, NULL, '', '[email protected]', NULL, 'test1', '', 1, '', '2010-10-18 00:32:37')
Paramètres:
{"decommission"=>{"dns_items_attributes"=>{"0"=>{"ip"=>"131.181.185.111",
"alias"=>"test",
"retain"=>"1",
"_destroy"=>""}},
"keep_backups"=>"1",
"services_stopped"=>"1",
"operating_system_id"=>"1",
"stakeholder_email"=>"[email protected]",
"alias"=>"test1",
"model_id"=>"1"},
"commit"=>"Submit",
"authenticity_token"=>"cMMf0zS/5jPExlXqVPaYVXndqPeVkm+OQ/WEPIYd2+g=",
"disposition"=>"Dispose",
"complete"=>"false",
"storage"=>"Local",
"contract_maintenance"=>"0"}
Quand je mets ce qui suit dans mon contrôleur créer, il rend 'vrai':
@decommission = Decommission.new(params[:decommission])
@decommission.complete = false
render :text => @decommission.complete
est le type de colonne pour 'complete' dans votre * Déclassement * migration un 'booléen'? –
oui c'est, j'ai aussi testé en utilisant tinyints à la place de 'faux' mais cela n'a pas fonctionné non plus – Rumpleteaser
Votre modèle a-t-il une méthode nommée 'complete'? – zetetic