更新:我很抱歉。试图解决这个问题需要花费数小时才能解决问题。当然,“HABTM Checkboxes”的railscast是这篇文章的正确答案。正如丹妮所说。谢谢。
我要进入Ruby和Rails并遇到一个我无法修复的问题。
我在数据库中有三个表:employees
,departments
和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"}])
但这会创造员工和部门。
这里有什么魔法吗?
答案 0 :(得分:1)
一种方法是删除
accepts_nested_attributes_for
创建一个控制器和视图以进入部门(您可以支持这个)并使用habtm创建雇主并通过复选框为他们分配部门。
对于habtm,请查看railscast