В моем приложении 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 теряет одно из имен, как вы можете видеть из приведенного выше ответа. Как я должен писать этот запрос?