我有一個屬於組織模型的Entry模型...兩次。如何使用pluck從與class_name相關的模型中獲取屬性
class Entry < ActiveRecord::Base
belongs_to :organization
belongs_to :temp_organization, class_name: "Organization"
end
我試圖寫一個AR查詢使用pluck
拉過相關的組織和temp_organization名。
Entry
.includes(:organization, :temp_organization)
.pluck('organizations.name', 'temp_organizations.name')
這崩潰,並顯示以下錯誤:
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: missing FROM-clause entry for table "temp_organizations"
這是合理的 - 沒有temp_organizations
表,因爲該關聯是通過正規organizations
表管理。
如何獲得pluck
以提取temp_organization名稱?
當我執行'Entry .... to_sql'時,它會觸發三個數據庫查詢,''SELECT \「entries \」。* FROM \「entries \」「','SELECT」organizations。* FROM「organizations」WHERE 「組織」,「id」= 1'和'SELECT「組織」*「從」組織「在哪裏」組織「。」id「IN(52 ...'。但是,如果我將'includes'更改爲'join ',我得到了一個單一的SELECT語句,看起來更像你期望的那樣,它顯示錶名爲'temp_organizations_entries',但是當我使用包含或連接時它仍然會產生同樣的錯誤。 – CodeSmith
我必須在我的代碼中有錯誤。當我使用'temp_organizations_entries.name'時,一切正在運行。謝謝。 – CodeSmith