生成迁移 – 创build连接表

我曾经浏览过很多SOgoogle职位来为连接表生成迁移has many and belongs to many协会而没有任何工作。

所有的解决scheme都生成一个空的迁移文件。

我使用rails 3.2.13 ,我有两个表: security_usersassignments 。 这些是我尝试的一些事情:

 rails generate migration assignments_security_users rails generate migration create_assignments_security_users rails generate migration create_assignments_security_users_join_table rails g migration create_join_table :products, :categories (following the official documentation) rails generate migration security_users_assignments security_user:belongs_to assignments:belongs_to 

任何人都可以告诉如何创build两个表之间的连接表迁移?

运行这个命令来生成空的迁移文件(它不会自动填充,你需要自己填充它):

 rails generate migration assignments_security_users 

打开生成的迁移文件并添加以下代码:

 class AssignmentsSecurityUsers < ActiveRecord::Migration def change create_table :assignments_security_users, :id => false do |t| t.integer :assignment_id t.integer :security_user_id end end end 

然后运行rake db:migrate从terminal进行rake db:migrate 。 我用一个可能帮助你的简单例子在many_to_many关系上创build了一个测验 。

要自动填充命令行中的create_join_table命令,它应该如下所示:

 rails g migration CreateJoinTableProductsSuppliers products suppliers 

对于产品模型和供应商模型。 Rails将创build一个名为“products_suppliers”的表。 注意复数。

(注意generation命令可以缩短到g

我通常喜欢在创build连接表时使用“模型”文件。 所以我呢。

 rails g model AssignmentSecurityUser assignments_security:references user:references