2011-08-24 4 views
1

Je travaille sur une application de galerie photo. Photo a une relation belongsTo avec Album (Album has_many realtionship to Photo) Comment créer la migration qui ajoute correctement cette relation à la base de données? J'ai essayé - les rails génèrent add_album_to_photo mais cela se passe comme une migration vide. Je pourrais utiliser une poussée dans la bonne direction.Learning Rails 3.0 - Aide à la migration - belongsTo

Répondre

3

tables En supposant albums et photos existent déjà, tout ce que vous avez à faire est d'ajouter une colonne album_id à votre table photos:

class AddAlbumToPhoto < ActiveRecord::Migration 
    def self.up 
    add_column :photos, :album_id, :integer 
    end 

    def self.down 
    remove_column :photos, :album_id 
    end 
end 

Ou:

class AddAlbumToPhoto < ActiveRecord::Migration 
    def self.up 
    change_table :photos do |t| 
     t.references :album 
    end 
    end 

    def self.down 
    change_table :photos do |t| 
     t.remove :album_id 
    end 
    end 
end 

Ou si vous insistez sur la génération de la code:

rails g migration add_album_to_photo album_id:integer 
+0

Est-ce que c'est k si la commande de génération produit du code comme le premier exemple dans un projet Rails 3.0? – BuddyJoe

+0

Oui, les deux sont très bien dans un projet Rails 3. – Mischa