got*_*tqn 65 migration ruby-on-rails jointable ruby-on-rails-3 ruby-on-rails-4
我已经浏览了许多SO和google帖子来生成has many and belongs to many关联的连接表的迁移,没有任何工作.
所有解决方案都生成一个空的迁移文件.
我正在使用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
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉如何在两个表之间创建连接表迁移吗?
and*_*ham 157
要在命令行中自动填充create_join_table命令,它应如下所示:
rails g migration CreateJoinTableProductsSuppliers products suppliers
Run Code Online (Sandbox Code Playgroud)
对于产品型号和供应商型号.Rails将创建一个名为"products_suppliers"的表.注意复数.
(注意,generation命令可以简化为g)
Pow*_*ers 37
运行此命令以生成空迁移文件(它不会自动填充,您需要自己填充):
rails generate migration assignments_security_users
Run Code Online (Sandbox Code Playgroud)
打开生成的迁移文件并添加以下代码:
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
Run Code Online (Sandbox Code Playgroud)
然后rake db:migrate从您的终端运行.我创建了一个关于many_to_many关系的测验,其中有一个可能对您有帮助的简单示例.
Pra*_*man 23
我通常喜欢在创建连接表时使用"模型"文件.所以我这样做.
rails g model AssignmentSecurityUser assignments_security:references user:references
Run Code Online (Sandbox Code Playgroud)