我有一些 AR 模型
User
has_many :clients, :through => :users_to_clients
has_many :files
Client
has_many :users_to_clients
has_many :users, :through => :users_to_clients
has_many :files
File
belongs_to :client
belongs_to :user
并尝试通过分配给用户的客户端获取所有文件
u = User.includes(:clients => :xls_files).find(1)
此代码触发 3 个 sql 查询。在最终的 sql 看起来像我需要的,他通过用户的客户端检查所有文件。
SELECT "files".* FROM "files" WHERE "files"."client_id" IN (1, 2)
但是如何获取这些数据,如果你的变量只包含用户对象?