Ich habe die folgenden Modelle:
User (id, name, network_id)
Network(id, title)
Welche Art von Rails-Modell assoc muss ich hinzufügen, so dass ich tun kann:
@user.network.title
@network.users
Gracias
Ich habe die folgenden Modelle:
User (id, name, network_id)
Network(id, title)
Welche Art von Rails-Modell assoc muss ich hinzufügen, so dass ich tun kann:
@user.network.title
@network.users
Gracias
Also Netzwerk has_many
Benutzer und ein Benutzer belongs_to
Netzwerk.
Fügen Sie einfach eine network_id
in die Benutzertabelle einfügen, falls Sie das noch nicht getan haben, und da es sich um eine foreign_key
eine Indizierung lohnt.
rails generate migration AddNetworkIdToUsers
class AddNetworkIdToUsers < ActiveRecord::Migration
def change
add_column :users, :network_id, :integer
add_index :users, :network_id
end
end
Im Netzwerkmodell tun:
class Network < ActiveRecord::Base
has_many :users
end
Im Benutzermodell tun:
class User < ActiveRecord::Base
belongs_to :network
end
Je nach Ihrem Datenbank-Setup müssen Sie nur die folgenden Zeilen zu Ihren Modellen hinzufügen:
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
Falls Sie eine Einrichtung ohne network_id haben, sollten Sie Daniels Antwort folgen.
Das ist mein Weg: laufen:
$rails generate migration AddNetworkIdToUsers
dann die Migrationsdatei konfigurieren:
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
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.