2011-12-18 20 views

Respuesta

37

así establecer contactos has_may usuarios y usuarios belongs_to red.

Solo agregue un network_id a la tabla de usuarios si todavía no lo ha hecho y, dado que es un foreign_key, vale la pena indexarlo.

rails generate migration AddNetworkIdToUsers

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

En el modelo de red hacen

class Network < ActiveRecord::Base 
    has_many :users 
end 

en el modelo de usuario:

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

No hay necesidad de la migración, la network_id es (de acuerdo con la pregunta) ya en la tabla – klaffenboeck

+7

cierto que :). solo para futuros lectores para que sepan cómo agregar la identificación. – daniel

+0

punto válido, acordado. Votaron de nuevo y lo siento por eso :-) – klaffenboeck

7

De acuerdo con su base de datos de configuración, sólo hay que añadir el siguiente líneas a sus modelos:

class User < ActiveRecord::Base 
    belongs_to :network 
    # Rest of your code here 
end 

class Network < ActiveRecord::Base 
    has_many :users 
    # Rest of your code here 
end 

En caso de que tenga una configuración sin network_id, debe ir con la respuesta daniels.

1

Ésta es mi manera: de ejecución:

$rails generate migration AddNetworkIdToUsers 

continuación config archivo de migración:

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 
Cuestiones relacionadas