在我的项目中我有2个型号 Employee.rb
class Employee < ActiveRecord::Base
has_many :shop
..
..
..
end
和Shop.rb
class Shop < ActiveRecord::Base
has_many :employees
..
..
..
end
我不确定这种关系是否正确。工作应该是这样的。
员工获得了一个在许多表中使用的外键employeeID
。
如果一名员工拥有超过4家商店,那么同一员工的4个条目将在员工表中(employeeID将对所有员工都相同),依此类推。
现在我的问题是我有一个更新员工详细信息的表单。表单用于创建和编辑员工详细信息。
我想在这个表格中放置一个选择标签,显示所有商店。在编辑页面上,应该预先选择属于该用户的商店..
怎么做?帮助
答案 0 :(得分:1)
您应该使用has_and_belongs_to_many
关联:
-
拥有并属于许多人
这意味着要创建一个新表:
#employees_shops
employee_id | shop_id
然后,您可以使用has_and_belongs_to_many
声明关联这两个模型:
#app/models/employee.rb
Class Employee < ActiveRecord::Base
has_and_belongs_to_many :shops
end
#app/models/shop.rb
Class Shop < ActiveRecord::Base
has_and_belongs_to_many :employees
end
这将允许您致电:
@shop.employees.each do |employee|
employee.name
end