2013-06-04 48 views
0

更新:我很抱歉。許多小時試圖解決這個問題讓我的大腦無法工作。當然,'HABTM Checkboxes'railscast是這篇文章的正確答案。正如丹尼所說。謝謝。HABTM:創建並鏈接到現有數據


我正在進入Ruby和Rails,並且遇到了一個問題,我無法修復。

我在數據庫中有三個表:employeesdepartments和連接表departments_employees

我用has_and_belongs_to_many關係:

#models/employee.rb 
class Employee < ActiveRecord::Base 
    has_and_belongs_to_many :departments 
    accepts_nested_attributes_for :departments, :allow_destroy => true 
    attr_accessible :last_name, :first_name, :middle_name, :departments_attributes 
end 

# models/department.rb 
class Department < ActiveRecord::Base 
    has_and_belongs_to_many :employees 
    attr_accessible :title 
end 

我的問題是,我不知道如何創建一個新的員工,將其鏈接到現有的部門,而不是建立在同一時間一個新的部門。

例子:

Employee.create(:last_name => "Smith", 
       :departments_attributes => [{:title => "IT"}]) 

但這同時創建了員工和部門。

這裏有什麼魔法可以做到嗎?

+0

爲什麼員工有很多部門? –

+0

由於員工可以同時在多個部門工作。 – blackst0ne

回答

1

一種方法是刪除

accepts_nested_attributes_for 

創建一個控制器和視圖進入部門(可以搭建腳手架此)和使用的habtm創建僱主和通過複選框爲它們分配的部門。

對於HABTM深入瞭解railscast