2017-08-20 1 views
0

Je sais comment définir la valeur par défaut pour une colonne dans les rails, mais je me trouve souvent dans une telle situation, par exemple:
un champ booléen nommé 'setted', sa valeur par défaut est false
tous les nouveaux objets ne seront pas être réglé jusqu'à ce que je le dise, mais j'ai besoin de tous les anciens objets à réglerComment définir la valeur par défaut pour les nouveaux objets uniquement, dans Rails Migration?

ce que je fais toujours est de faire une tâche de rake pour basculer tous les anciens objets, est-il un moyen de le faire dans la migration, mais pas comme script, mais pour définir une valeur par défaut pour les anciens objets mais pas pour le futur schéma

Répondre

0

Vous pouvez simplement le faire dans votre migration:

add_column :users, :is_banned, :bool 
User.update_all(is_banned: false)