我的应用程序作为用户模型通过Devise Gem生成。我希望通过用户和角色之间的分配通过多对多关联将每个用户与某些角色相关联。如何生成迁移脚本以便用户与某些角色关联。模型类将如下所示
class User < ActiveRecord::Base
has_many :assignments
has_many :roles, :through => :assignments
end
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignments
end
答案 0 :(得分:2)
添加如下迁移:
rails g migration create_assignments_table
用以下内容填写该文件:
class CreateAssignmentsTable < ActiveRecord::Migration
def change
create_table :assignments do |t|
t.references :user
t.references :role
t.timestamps
end
end
end
我喜欢使用t.references
代替t.integer
来(只是在语义上)反映表格之间的关系,但这取决于您。
答案 1 :(得分:0)
只需要创建一个表迁移。
rails g migration create_assignments
确保它有你需要的列。
class CreateAssignments < ActiveRecord::Migration
def change
create_table :assignments do |t|
t.integer :user_id
t.integer :role_id
t.timestamps
end
end
end