我在Rails应用程序中为HABTM关联创建了一个连接表。它在模式中创建了表,但它从未在应用程序中生成模型文件。它还能用吗?为什么不生成文件?
以下是我的迁移:
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
模型
class Book < ActiveRecord::Base
has_and_belongs_to_many :feeds
end
class Author < ActiveRecord::Base
has_and_belongs_to_many :posts
end
答案 0 :(得分:1)
您必须明确生成模型;它不会作为创建连接表的副产品而发生。
has_and_belongs_to_many
关联实际上不需要表示关联的模型类。它应该只是一个连接表,所以你设置的是完全正确的。
此类关联的另一个选项是使用中间或联接类的has_many through:
关联。这在rails guide for associations中有更详细的讨论。你必须自己生成加入模型。