生成迁移 – 创build连接表
我曾经浏览过很多SO
和google
职位来为连接表生成迁移has many and belongs to many
协会而没有任何工作。
所有的解决scheme都生成一个空的迁移文件。
我使用rails 3.2.13
,我有两个表: security_users
和assignments
。 这些是我尝试的一些事情:
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