1
我有以下型號嵌套協會不會產生有效的SQL
class User < ActiveRecord::Base
has_many :documents
has_many :requests
end
class Document < ActiveRecord::Base
has_many :requests
belongs_to :user
end
class Request < ActiveRecord::Base
belongs_to :document
belongs_to :requester, class_name: 'User', foreign_key: 'user_id'
end
基本上,有哪些可以有很多文檔的用戶。用戶可以請求訪問其他用戶的文檔。
現在我想獲取發送給用戶的具有特定狀態的請求列表。
在User
方法執行此查詢不起作用
Request.includes(:document)
.where(status: Request::SOME_STATUS, documents: { user: self })
我得到錯誤
ERROR: column documents.user does not exist
顯然,它可以通過與user_id: id
更換user: self
是固定的,但我不明白爲什麼Active Record不適用於user: self
。此行爲是否記錄在案?