0

更新:我很抱歉。花了好几个小时试图解决这个问题让我的大脑昏昏欲睡。当然,'HABTM Checkboxes' railscast 是这篇文章的正确答案。正如丹妮所说。谢谢你。


我正在研究 Ruby 和 Rails,但遇到了一个我无法解决的问题。

我在数据库中有三个表:employeesdepartments和 join-table 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"}])

但这会创建员工和部门。

这里有什么魔法可以做到这一点吗?

4

1 回答 1

1

一种方法是删除

accepts_nested_attributes_for

创建一个控制器和视图以输入部门(您可以使用脚手架)并使用 habtm 创建雇主并通过复选框为他们分配部门。

对于 habtm 看看railscast

于 2013-06-04T02:58:56.000 回答