web-dev-qa-db-fra.com

Supprimer un enregistrement de la console - Ruby on Rails

Je veux supprimer un enregistrement de la console.

Je me suis connecté via script/console et

User.find(1).delete
$<User id: 1, ..............>
User.find(1)
ActiveRecord::RecordNotFound: Couldn't find User with ID=1
........
........
........

Tout va bien jusqu'à ici.

Mais lorsque je quitte la console et que je retourne à celle-ci à l'aide d'une commande script/console, je suis à nouveau en mesure de voir l'enregistrement avec id = 1.

La base de données n'est pas locale et je me connecte via database.yml en donnant un ip.

quand j'essaie de faire la même chose sur la base de données de développement locale, tout va bien.

Quelqu'un peut-il s'il vous plaît expliquer ce qui se passe et où je manque!

Merci

14
kill007

Essayer

User.find(1).destroy

Cela devrait fonctionner dans la console et autrement.

34
vandrop

Sur une note similaire, vous pouvez supprimer tous les n-uplets pour un objet donné de la console Rails comme suit:

@object = Object.all

@object.each do |o|
  o.delete
end
2
Adam Hammouda

Un moyen facile de supprimer les données de modèles de la console

Rails console

Stocker le modèle utilisateur dans une variable d'instance

user = User.find(1)

supprimer ou détruire les relations en suivant les commandes

user.delete

ou

user.destroy
1
Dinesh Pallapa

Essayez User.count ou y User.count

User.first où premier est le numéro que vous souhaitez supprimer

User.first.destroy

0
LukeBickleTWA

Assurez-vous de ne pas appeler la console en mode bac à sable, ce qui empêchera l'opération de suppression.

0
webaholik