姓名に基づいて選択するのではなく、なぜ連結するのですか?副選択は、直接クエリよりもパフォーマンスが大幅に低下します。 selectを使用してフルネームを取得できます スコープ(他の属性と同じ方法でアクセスできます):
Candidate.select("candidates.*, (first_name || ' ' || last_name) AS full_name").
where(first_name: 'Antonov', last_name: 'Kolganov')
更新: FROMの副選択を使用して、上記のクエリを本当に書き直す必要がある場合 ActiveRecordの句を使用すると、次のことができます。
Candidate.from("(SELECT (candidates.first_name || ' ' || candidates.last_name) AS full_name, candidates.* FROM candidates) candidates").
where(full_name: 'Anton Kolganov')
つまり、一般的に、selectを含む、任意の有効なSQLをActiveRecordスコープメソッドに入れることができます。 、from 、など。