-1

我有员工模型,其中有许多控制器,例如

jobs_controller.rb
contacts_controller.rb
personals_controller.rb
dependets_controller.rb

它们都与 Employee 控制器有关。我正在使用 MongoDb,因为我有不同的控制器,我也有不同的型号。在我的仪表板中,我必须显示相关的员工详细信息。其中一个字段来自联系人控制器,另一个来自dependents_controller,另一个来自个人控制器。在这里,我必须调用所有模型并从每个模型中获取一个字段。我可以通过显示一个相关模型的每个字段来自定义此代码吗?我正在使用设计。我不能存储每个用户相关数据的 id 并通过用户模型调用吗?我搞砸了..如果是,那怎么办?在我的员工控制器中

def index
    @employees = Employee.all
    Employee.includes(:dependants).each do |dependant|
     p dependant.firstname #example of pulling data for that related entity
     end


  end

另外我如何找到相关人员数据?

4

1 回答 1

2

查看 mongoid 文档的这一部分:http://mongoid.org/en/mongoid/docs/relations.html 应该可以很好地说明如何在模型中实现关系逻辑。

但是,我强烈建议您先阅读以下内容:http: //docs.mongodb.org/manual/core/data-modeling

特别是引用和原子性部分。

过去我发现没有完全掌握 mongo 和事务数据库引擎(如 innodb)之间的差异,这导致我在项目中途重新设计我的模型。

应要求澄清

您可以按照我的第一个链接所述设置模型:

class Employee
  include Mongoid::Document
  field :address, type: String
  field :work, type: String
  has_many :dependants
end

class Dependant
  include Mongoid::Document
  field :firstname, type: String
  field :lastname, type: String
  belongs_to :employee
end

然后,在您的控制器中,您可以通过员工访问家属数据:

#this example loops through every employee in the collection
Employee.includes(:dependants).each do |employee|
  employee.dependants.each do |dependant|
   p dependant.firstname #example of pulling data for that related entity
  end
end
于 2012-12-24T11:24:54.793 回答