Как получить доступ к Mysql :: Result в ActiveRecord? - PullRequest
22 голосов
/ 07 сентября 2010

Пример:

result = ActiveRecord::Base.connection.execute("select 'ABC'")

Как я могу получить значение 'ABC' из result? Пробовал result.first безуспешно. Спасибо

p.s. Драгоценные камни:

activerecord (2.3.9)
mysql (2.8.1)

Ответы [ 3 ]

26 голосов
/ 07 сентября 2010

Вы можете попробовать это на cosole:

script/console # rails 2
rails console  # rails 3

введите свой код в консоль и вы получите:

irb> result = ActiveRecord::Base.connection.execute("select 'ABC'")
 => [{0=>"ABC", "'ABC'"=>"ABC"}] 

так что вы получите это с

result.first[0]
# or
result.first['ABC']

result.first просто возвращает первую строку, а не первое значение. Эта строка состоит из хэша с числовым и именованным доступом.

21 голосов
/ 14 февраля 2012

Вместо .execute вы можете использовать .select_all, это вернет массив с результатом.

Поэтому используйте:

ActiveRecord::Base.connection.select_all("select 'ABC'")
21 голосов
/ 07 сентября 2010

Попробуйте:

result = ActiveRecord::Base.connection.select_value("select 'ABC'")

Я бы не советовал возиться с базовым кодом базы данных, если вам не нужно.

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