Подтвердить что ты не робот

Как получить доступ к Mysql:: Результат в ActiveRecord?

Пример:

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

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

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

activerecord (2.3.9)
mysql (2.8.1)

4b9b3361

Ответ 1

Вы можете попробовать его на козоле:

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 просто возвращает первую строку, а не первое значение. Эта строка состоит из хэша с числовым и именованным доступом.

Ответ 2

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

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

ActiveRecord::Base.connection.select_all("select 'ABC'")

Ответ 3

Try:

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

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

Ответ 4

У меня есть таблица с некоторыми данными, где есть столбец с именем Статус, который содержит такие значения, как closed, in progress и т.д.

Итак, когда я делаю код как: ActiveRecord::Base.connection.select_all "select DISTINCT Status from tickets"

Я получаю следующее:

StatusclosedStatusin progressStatusassignedStatusnewStatussolved

Проблема заключается в том, что имя столбца добавляется перед каждым значением. Как получить значения в одиночку?