2011-03-27 2 views
0

J'utilise MySQL J'ai un x tableau n correspondant aux modèles mvc et y table n correspondants. Quand je sélectionne un détruire dans la vue de x, il devrait remplir deux tâches. Tout d'abord, détruisez l'identifiant de la table x et enregistrez toutes les données à partir de l'id .... à la table de y Veuillez me guider quelle relation je devrais faire et comment le faire. J'ai essayé beaucoup de codage en rapport avec elle, mais je ne suis pas a échoué, la raison étant le manque de connaissance profonde de rubis sur des rails .. S'il vous plaît aidercomment copier toutes les données d'une table dans une nouvelle table dans les rails

+0

Quiconque vote en bas, veuillez indiquer au moins pourquoi. L'anglais n'est évidemment pas sa langue maternelle et sa question est décente. Traiter des données archivées n'est pas toujours trivial. – jdl

Répondre

2

Jetez un oeil à acts_as_archive. Cela fait ce que je pense que vous demandez ici.

Edit:

  1. Ne pas utiliser Rails 2.3.5. Mettez à niveau vers 2.3.11 ou passez à Rails 3, ce que vous pourriez aussi bien faire puisque vous avez dit que vous étiez en train d'apprendre de toute façon.
  2. Pour la version gem, il suffit de suivre les instructions acts_as_archive et d'utiliser la dernière version. En ce qui concerne où le mettre, devrait lire sur Bundler. Payer une attention particulière à la section sur cette page intitulée "Using Bundler with Frameworks". Lecture d'un tutoriel Rails ne ferait pas mal non plus, je suspect.
+0

pouvez-vous s'il vous plaît guider ce vrsion gem je devrais installer pour ruby ​​sur rails 2.3.5 et où stocker le fichier. Comme ruby ​​est nouveau pour moi. – Suketa

0

Id est une clé primaire et son maintien par les rails, de sorte que vous ne pouviez pas le supprimer d'une ligne dans db. Il existe quelques solutions de contournement pour ignorer cela, mais ce ne sont pas de bons moyens de faire de telles choses

solution à votre problème: vous pouvez supprimer l'enregistrement complet de la table x et peut ajouter son entrée à l'autre table, aussi l'ID ne peut pas être Identique à l'objet supprimé, vous pouvez donc ajouter une colonne indiquant x_id dans la table pour la stocker.

+0

salut mr. Naren Merci d'avoir répondu .... J'ai déjà x_id ... la chose est que je ne sais pas comment ajouter toutes ces données dans la table Y ... que je demandais, cette action ne devrait se produire que lorsque je détruis l'identifiant X à partir de x table (FROM X VIEW) – Suketa

+0

oui, j'ai compris. Dans ce cas, si vous voulez le faire sans utiliser de plugin, vous devez sérialiser x l'objet record actif et le stocker dans une colonne de y. Sinon, acts_as_archive est très utile et je suis d'accord avec la réponse de jdl. –

1

Est-il possible d'utiliser un déclencheur dans la base de données? L'archive est-elle quelque chose pour vous, le développeur, ou est-il nécessaire de pouvoir accéder aux informations archivées à partir de l'application?

Si vous avez besoin des données du code, consultez la solution postée par @ jdl.

0

Je l'ai fait en récupérant chaque élément de la table x et inséré dans la colonne y. que de détruire la commande.

Questions connexes