組織モデルに属するエントリモデルが2回あります。pluckを使用してclass_nameに関連付けられたモデルから属性を取得する方法
class Entry < ActiveRecord::Base
belongs_to :organization
belongs_to :temp_organization, class_name: "Organization"
end
私はpluck
を使用して、関連団体とtemp_organization名をオフに引っ張る単一のARクエリを記述しようとしています。
Entry
.includes(:organization, :temp_organization)
.pluck('organizations.name', 'temp_organizations.name')
これは、次のエラーでクラッシュ:
理にかなっているActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: missing FROM-clause entry for table "temp_organizations"
は - その協会が定期的organizations
テーブルを介して管理されているので、何もtemp_organizations
テーブルがありません。
pluck
にtemp_organization名をプルするにはどうすればよいですか?
'Entry .... to_sql'を実行すると、3つのDBクエリ、SELECT \" entries \ "。* FROM \" entries "\" "、" SELECT "組織をトリガします。* FROM" organizations "WHERE "組織"、 "組織"、 "組織"、 "組織"、 "組織"、 "組織"、 "組織"、 "組織" '、私はあなたが期待しているもののように見える単一のSELECT文を取得しますが、テーブル名は' temp_organizations_entries'になりますが、インクルードまたはジョインを使用しても同じエラーが発生します。 – CodeSmith
どこかで自分のコードに誤りがあったに違いない。私は 'temp_organizations_entries.name'を使用してすべてが今働いています。ありがとうございました。 – CodeSmith