首页 > 解决方案 > Ruby on Rails - 模型

问题描述

在此处输入图像描述

在此处输入图像描述

我有两张桌子,一张是客户端,另一张是被调用的。每张票与 1 位客户相关联。在客户端表中,我有父客户端,每个客户端都有自己的 ID,我也有子客户端,对于这些,我们在entities_id列中定义了父客户端 ID。

我需要查询来自父客户端和子客户端的所有呼叫,但是来自子客户端的呼叫应该显示为好像来自父客户端一样,我该如何进行此查询?

标签: arraysruby-on-railsrubyhashmodel

解决方案


我的理解是

class Client
  has_many :calls
  has_many :child_clients, :class_name => 'Client',
  belongs_to :parent_client, :class_name => 'Client'
end

class Call
  belongs_to :client
end

我不明白你问题中的这一部分

“但是来自子客户端的呼叫应该像来自父客户端一样显示”

但这里可能有一些有趣的要求:

  • current_client.parent_client.calls
  • current_client.child_clients.map(:calls)
  • Call.where(client_id: [current_client.parent_client_id, current_client.child_clients.map(&:id)].flatten)

附言:

你的问题不是很清楚,可能会好很多:

  • 你可以直接插入你的图片
  • 您谈论客户,但您的图像显示实体
  • 你可以给我们一些模型定义而不是表格。

推荐阅读