Modifier Les Rails De Modèle À Partir De La Ligne De Commande
Je suis assez nouveau à Ruby on Rails, et je me demandais si il y avait moyen de modifier le schéma de base de données pour un modèle.
Par exemple, j'ai le modèle par abonnement dans mon application-la façon dont je l'ai créé en utilisant rails generate scaffold Subscriber email:string
Mais maintenant, je veux un nom dans le modèle par abonnement. Est-il un moyen facile de faire cela? J'ai mis beaucoup de code dans mon contrôleurs et les vues, donc je n'ai pas forcément envie de détruire l'échafaud, mais je voudrais modifier le modèle.
Merci d'avance,
hwrd
P. S. je suis en utilisant Ruby on Rails 3
La lecture de guides.rubyonrails.org/active_record_migrations.html devrait être très utile.
OriginalL'auteur hwrdprkns | 2011-01-07
Vous devez vous connecter pour publier un commentaire.
Un ActiveRecord Modèle inspecte le tableau qu'il représente. Vous n'avez pas réellement besoin de changer de modèle pour ajouter un nouveau champ (sauf si vous voulez ajouter des validations, etc).
Ce que vous voulez faire est de faire une nouvelle migration et ensuite migrer votre base de données:
Alors vous pouvez commencer à référencer le nom de domaine dans vos contrôleurs et les vues.
(Ce générateur de commande peut sembler un peu magique, mais les rails générateur reconnaît ce format va générer les appropriée
add_column
etremove_column
code. Voir la Rails de guide de migration pour en savoir plus.)Oui, ils continuent à prendre de la place. Je ne suis pas sûr de ce que vous demandez. Cette commande ajoutera la
name
champ à votresubscribers
table. N'est-ce pas ce que vous vouliez?Les anciennes colonnes n'ont pas été supprimés, de sorte qu'ils seront toujours prendre de la place. La migration ci-dessus est seulement d'ajouter une colonne à la table des abonnés, c'est tout.
Josh, je leur demandais comment je pourrais modifier le schéma de la base d'un modèle. Je pense qu'une combinaison de vous et de Jesse réponses, c'est ce que je voulais. En tout cas, je suis sûr que je peux jouer avec ces idées jusqu'à ce que je peux le faire fonctionner pour moi.
OriginalL'auteur Josh Lindsey
Si tu veux changer le schéma de la base de votre modèle, vous aurez envie d'utiliser les migrations.
Vous allez faire des choses comme
http://guides.rubyonrails.org/migrations.html
Si vous ne le seul moyen de trouver des modèles et la mise à jour des données à l'intérieur de chaque instance, rendez-vous avec @apneadiving de réponse.
lorsqu'une colonne est supprimée à partir d'une table, toutes les données sont perdues. Et ce que @Jesse Wolgamott dit, c'est essentiellement la même chose que ce que @Josh Lindsey dit..
Désolé j'ai voté cela, je ne voulais pas! Si vous modifiez votre réponse, je vais voter en arrière!
OriginalL'auteur Jesse Wolgamott