Как получить данные столбца из объекта ruby, возвращенного из SQL-запроса? - PullRequest
0 голосов
/ 05 декабря 2018
 sql = "Select * from clients where id=1"
        records_array = ActiveRecord::Base.connection.execute(sql)
       puts(records_array.id)

Я получаю сообщение об ошибке, даже если запрос должен содержать объект с идентификатором

NoMethodError (неопределенный метод `id 'для #):

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Всегда пытайтесь угадать, какой метод может вам помочь.Когда вы пишете record_arrays.methods, он возвращает список доступных методов, которые могут вам помочь.Например, records_array.column_values(0) будет возвращать все значения из первого столбца, в этом случае может быть список всех идентификаторов клиентов, другой метод - records_array.values.Вы можете проверить, какой метод может вам помочь.

0 голосов
/ 05 декабря 2018

Вы выполняете метод .id для хэша (возвращение ActiveRecord::Base.connection.execute(sql)), экземпляры хэшей не имеют этого метода.Этот метод вернет вам sql Результат, вы можете получить доступ к клиенту через выполнив:

records_array.first

Это вернет вам массив атрибутов искомого клиента:

[1, 'Client name', 'Client birthday']

Я настоятельно рекомендую вам использовать метод .find из класса Client, если вы используете ActiveRecord

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