2011-12-18 18 views

risposta

37

modo rete has_may utenti e utenti belongs_to rete.

Basta aggiungere un network_id alla tabella utenti se ancora non lo è e anche dal momento che è uno foreign_key vale la pena indicizzarlo.

rails generate migration AddNetworkIdToUsers

class AddNetworkIdToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :network_id, :integer 
    add_index :users, :network_id 
    end 
end 

Nel modello di rete fanno

class Network < ActiveRecord::Base 
    has_many :users 
end 

nel modello di utente:

class User < ActiveRecord::Base 
    belongs_to :network 
end 
+0

Non c'è bisogno per la migrazione, la NETWORK_ID è (a seconda della domanda) già nella tabella – klaffenboeck

+7

vero che :). solo per i futuri lettori in modo che sappiano come aggiungere l'id. – daniel

+0

punto valido, concordato. Ti ha nuovamente sviato e mi dispiace per quello :-) – klaffenboeck

7

Secondo il database-setup, è sufficiente aggiungere il seguente linee ai tuoi modelli:

Nel caso in cui si disponga di una configurazione senza network_id, si dovrebbe andare con risposta daniels.

1

Questo è il mio modo: run:

$rails generate migration AddNetworkIdToUsers 

poi config file di migrazione:

class AddNetworkIdToUsers < ActiveRecord::Migration[5.1] 

    def up 

    add_column :users, :network_id, :integer 
    add_index :users, :network_id 
    end 

    def down 

    remove_index :users, :network_id 
    remove_column :users, :network_id 
    end 

end 
Problemi correlati