В моем приложении rails 4 клиент (таблица клиентов) может иметь много проектов (таблица проектов). У меня есть столбец с именем name
в каждой таблице. Я пытаюсь написать join
, а затем select
, который использует проекты в качестве базовой таблицы и клиентов в качестве таблицы поиска. client_id
- это foreign_key
в таблице проектов:
Я пишу свой запрос следующим образом:
Project.joins(:client).select('projects.id,projects.name,clients.name')
Получаю следующий ответ:
Project Load (0.6ms) SELECT projects.id,projects.name,clients.name FROM "projects" INNER JOIN "clients" ON "clients"."id" = "projects"."client_id"
=> #<ActiveRecord::Relation [#<Project id: 1, name: "Fantastico Client">]>
Если я попытаюсь сделать псевдоним таким образом:
Project.joins(:client).select('projects.id,projects.name,clients.name as client_name')
Затем я получаю следующий ответ:
Project Load (0.8ms) SELECT projects.id,projects.name,clients.name as client_name FROM "projects" INNER JOIN "clients" ON "clients"."id" = "projects"."client_id"
=> #<ActiveRecord::Relation [#<Project id: 1, name: "The Dream Project">]>
В любом случае ActiveRecord теряет одно из имен, как вы можете видеть из приведенного выше ответа. Как я должен писать этот запрос?