2016-12-28 68 views
0

在我的rails應用程序中,我有三個表:usersrolesusers_roles使用seeds.rb填充連接表

在我seeds.rb文件我有以下Ruby代碼:

# create super admin role 
Role.create!([{name: "Super Admin", description: "Super Admin (can do anything)"}]) 
# create user 
User.create!([{name: "Cameron", email: "[email protected]", password_digest: "$2a$10$k4FPOZlVmy.hIM5z1scFYeFc8cNcVGpq..MU0529LlSGylEqYLaqC"}]) 
# make user super admin 
User::HABTM_Roles.create!([{user_id: 1, role_id: 1}]) 

但是它不能在最後一行:User::HABTM_Roles.create!

如何將數據添加到聯接表?

回答

2

試着這麼做

User.first.roles << Role.first 
+0

嘿夥計,你能解釋這些代碼做什麼?我是Ruby新手,謝謝。 – Cameron

+0

我認爲你的用戶模型has_many角色。這意味着,它可以包含角色對象的數組。此行將第一個用戶的角色數組末尾的第一個角色推入。 – Ursus

+0

'id'不一定是'1',儘管如果種子已經運行了幾次。最好從'user = User.create(...)'' – Iceman