2012-04-16 11 views
5

mio Modello utente si presenta come:modo migliore per aggiungere attributi al modello d'uso in Ruby on Rails

class CreateUsers < ActiveRecord::Migration 
     def self.up 
     create_table :users do |t| 
     t.string :name 
     t.string :email 

     t.timestamps 
     end 
    end 

     def self.down 
     drop_table :users 
     end 
     end 

Se avessi voluto aggiungere un altro: l'attributo, è meglio creare un altro file di migrazione per l'aggiunta di una nuova colonna (see another Stackoverflow thread) o posso semplicemente aggiungere manualmente t.string: name_of_new_attribute e quindi rake db: migrate?

Grazie!

risposta

16

Il modo corretto è creare una nuova migrazione. Nella cartella principale rotaie di progetto, eseguire

rails generate migration AddDetailsToUser address:string age:integer ecc ...

e quindi eseguire rake db:migrate

Un'alternativa a questo è quello di modificare il file di migrazione originale, reset/distruggere la base di dati e ri-run tutte le migrazioni.

+0

Quindi, quando desidero aggiungere altri attributi in futuro, posso semplicemente modificare questo file di migrazione? – Elias7

+7

Ti conviene creare un'altra migrazione con i nuovi attributi in essa contenuti – Norto23

Problemi correlati