ruby on rails - ¿Cómo configurar una relación de uno a muchos?
ruby-on-rails ruby-on-rails-3 (3)
De acuerdo con la configuración de su base de datos, solo tiene que agregar las siguientes 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 de daniels.
Tengo los siguientes modelos:
User (id, name, network_id)
Network(id, title)
¿Qué tipo de asociación de modelos de Rails debo agregar para poder hacer:
@user.network.title
@network.users
Gracias
Este es mi camino: corre:
$rails generate migration AddNetworkIdToUsers
luego config configura el archivo:
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
así que la red tiene has_many
usuarios y un usuario belongs_to
red.
Simplemente agregue un network_id
a la tabla de usuarios si aún no lo ha hecho y también, ya que es una foreign_key
vale la pena foreign_key
.
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 haz:
class Network < ActiveRecord::Base
has_many :users
end
En el modelo de usuario hacer:
class User < ActiveRecord::Base
belongs_to :network
end