Rails迁移生成的连接表模式但没有文件

时间:2014-04-07 20:18:57

标签: ruby-on-rails ruby-on-rails-4 rails-migrations rails-models

我在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

1 个答案:

答案 0 :(得分:1)

您必须明确生成模型;它不会作为创建连接表的副产品而发生。

has_and_belongs_to_many关联实际上不需要表示关联的模型类。它应该只是一个连接表,所以你设置的是完全正确的。

此类关联的另一个选项是使用中间或联接类的has_many through:关联。这在rails guide for associations中有更详细的讨论。你必须自己生成加入模型。