Dans Rails je génère un modèle avec deux chaînes et j'aimerais en ajouter plus. Comment dois-je procéder?
Active Record mappe vos colonnes de tables aux attributs de votre modèle, vous n'avez donc pas besoin de dire Rails que vous en avez besoin de plus, ce que vous avez à faire est de créer plus de colonnes et Rails va les détecter, les attributs seront ajoutés automatiquement.
Vous pouvez ajouter plus de colonnes à votre table via migrations :
Rails generate migration AddNewColumnToMyTable column_name:column_type(string by default)
Exemple:
Rails generate migration AddDataToPosts views:integer clicks:integer last_reviewed_at:datetime
cela va générer un fichier:
db/2017.....rb
Ouvrez-le et ajoutez-le si nécessaire:
self.up
#add_column :tablename, :column_name, :column_type
add_column :posts, views, :integer
add_column :posts, clicks, :integer, default: 0
end
J'espère que cela t'aides.
Oui, la solution de @JCorcuera est applicable, mais je suggère d'appliquer un peu plus d'informations à Rails pour répondre à nos besoins. Essayez cette approche:
Rails generate migration add_columnname_to_tablename columnname:datatype
Par exemple:
Rails generate migration add_password_to_users password:string
Pour le rendre encore plus simple, vous pouvez faire:
Rails g migration add_something_to_model something:string something_else:integer
Si vous utilisez le Rails 4.x, vous pouvez maintenant générer des migrations avec des références, comme ceci:
Rails génèrent une migration Utilisateur AddUserRefToProducts: références
comme vous pouvez le voir sur Rails guides