2016-06-20 175 views
0

我有以下型号填充连接表中HABTM关系:使用轨道控制台

class Institute < ActiveRecord::Base 
    has_and_belongs_to_many :users 
end 

class User < ActiveRecord::Base 
    has_and_belongs_to_many :institutes 
end 

我有一个连接表“institutes_user”。使用Rails控制台,当我创建一个属于特定研究所的新用户时(假设它已经存在),我该如何自动填充此表?

当我使用rails控制台中的“create”方法创建一个User(并传入institute_id)时,它不填充连接表。

谢谢!

回答

1

您可以使用“铲”运算符。例如,

Institute.first.users << User.new(first_name: "A", last_name: "B", email: "C") 

将插入在users表的新纪录User并在institute_users表的新加入一行。

你可以看到通过has_and_belongs_to_manyhere添加到你的课程的其他方法列表。

+0

谢谢,我该如何传递值? 我想做类似于: User.create(first_name:“A”,last_name:“B”,email:“C”) – user1175969

+0

当我执行下列操作时: Institute.find(1).users << User .create(first_name:“A”,last_name:“B”,email:“C”) 我得到错误:“Institute.find(1).users << User.create(first_name:”A“,last_name :“B”,电子邮件:“C”)“ – user1175969

+1

@ user1175969,解决方案代码应该适用于'new'和'create'。您在评论中发布的错误已被切断。你能把它添加到你的问题吗?你也可以指定你的rails/ruby​​版本吗? – mgamba