J'ai donc un modèle avec une association et j'utilise un formulaire unique avec "accept_nested_attributes_for" pour créer des enregistrements. Dans le formulaire, j'ai quelques listes déroulantes pour l'enfant qui ne sont pas toujours requises pour avoir une valeur sélectionnée et quand cette situation arrive, je veux utiliser la valeur par défaut que j'ai spécifiée dans ma migration. Donc, si je soumets le formulaire sans rien sélectionner dans les listes déroulantes, Mysql se plaint d'essayer d'insérer NULL. Je pensais que quelque part le long des lignes la chaîne vide du formulaire utiliserait la valeur de migration par défaut/valeur par défaut dans mysql au lieu d'essayer d'insérer NULL?Formulaire n'utilisant pas les valeurs par défaut de la migration
Ai-je raté quelque chose? Merci d'avance.
Editer: Un peu de code ... (simplifié). "book_type" devrait vraiment être "book_type_id", mais ne tenez pas compte de cela.
erreur Mysql msg:
Mysql::Error: Column 'book_type' cannot be null: INSERT INTO
book_details
(book_id
,book_type
, ...) VALUES(1, NULL, ...)
Migration:
class CreateBookDetails < ActiveRecord::Migration
def self.up
create_table :book_details do |t|
t.integer :book_id, :null => false, :default => 0
t.integer :book_type, :null => false, :default => 0
...
t.timestamps
end
end
def self.down
drop_table :book_details
end
end
Pouvez-vous montrer les détails de votre migration et l'erreur MySQL spécifique s'il vous plaît? – bjg
Ajout d'un peu plus de détails ... Je savais que quelqu'un demanderait plus d'informations. =) Donc, dans le menu déroulant book_type, je ne veux pas exiger d'entrée utilisateur du formulaire et quand ils ne sélectionnent rien, je veux que l'entrée soit 0. – james