Rails, как запустить пользовательский запрос и вернуть массив карты - PullRequest
0 голосов
/ 12 октября 2018

У меня есть 2 модели в моем приложении.Скажем, ModelA (id, attributeA1, attributeA2) и ModelB (id, attributeB1, attributeB2).Теперь я хочу выполнить пользовательский запрос:

select attributeA1, attributeA2, attributeB2 from ModelA inner join ModelB on ModelA.id == ModelB.id

В конечном итоге я хочу получить массив.Каждый элемент представляет собой карту со следующими ключами: attributeA1,: attributeA2,: attributeB2.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Ответ будет следующим:

  connection = ActiveRecord::Base.connection
  res = connection.exec_query(%Q(
    select attributeA1, attributeA2, attributeB2 
       from ModelA inner join ModelB 
       on ModelA.id == ModelB.id
  ))

, и затем вы можете повторить результат по res.rows и res.columns

0 голосов
/ 12 октября 2018

Пример можно найти в документации ActiveRecord https://guides.rubyonrails.org/active_record_querying.html#retrieving-filtered-data-from-multiple-tables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...