【问题标题】:Select tag and Many to Many Relation in Rails 4.0Rails 4.0 中的选择标签和多对多关系
【发布时间】:2014-07-07 04:23:33
【问题描述】:

在我的项目中,我有 2 个模型 员工.rb

class Employee < ActiveRecord::Base
  has_many :shop
  ..
  ..
  ..
end

和 Shop.rb

class Shop < ActiveRecord::Base
  has_many :employees
  ..
  ..
  ..
end

我不确定这种关系是否正确。工作应该是这样的。 员工有一个外键employeeID,它在许多表中都使用.. 如果员工拥有超过 4 家商店,则同一员工的 4 个条目将在员工表中(所有员工 ID 都相同),依此类推。 现在我的问题是我有一个更新员工详细信息的表格。表单用于创建和编辑员工详细信息。 我想在显示所有商店的表单中放置一个选择标签。在编辑页面上,应预先选择属于用户的商店..

如何做到这一点?帮助

【问题讨论】:

标签: mysql ruby-on-rails ruby ruby-on-rails-4


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多