2016-06-20 216 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