Ich habe eine Join-Tabelle für eine HABTM-Assoziation in meiner Rails-App erstellt. Sie hat die Tabelle im Schema erstellt, jedoch nie eine Modelldatei in der App generiert. Wird es noch funktionieren? Warum hat es keine Datei erzeugt?
Hier ist meine Migration:
class CreateBooksAuthorsJoinTable < ActiveRecord::Migration
def change
create_table :books_authors, id: false do |t|
t.integer :book_id
t.integer :author_id
t.timestamps
end
end
end
Modelle
class Book < ActiveRecord::Base
has_and_belongs_to_many :feeds
end
class Author < ActiveRecord::Base
has_and_belongs_to_many :posts
end
Antworten:
1 für die Antwort № 1Sie müssten explizit ein Modell generieren; Es tritt nicht als Nebenprodukt beim Erstellen einer Join-Tabelle auf.
EIN has_and_belongs_to_many
Assoziation benötigt eigentlich keine Modellklasse, die die Assoziation darstellt. Es soll nur eine Join-Tabelle sein, also ist das, was Sie eingerichtet haben, genau richtig.
Die andere Option für solche Vereinigungen ist a has_many through:
Assoziation, die eine intermediate oder join-Klasse verwendet. Dies wird detaillierter in der Schienenführer für Verbände. Sie müssten dieses Beitrittsmodell jedoch selbst generieren.