Как получить доступ к Mysql:: Результат в ActiveRecord? Пример: result = ActiveRecord::Base.connection.execute("select 'ABC'") Как я могу получить значение 'ABC' от result? Пробовал result.first без успеха. Благодаря p.s. Драгоценные камни: activerecord (2.3.9) mysql (2.8.1) Ответ 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 Проблема заключается в том, что имя столбца добавляется перед каждым значением. Как получить значения в одиночку?
Ответ 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 Проблема заключается в том, что имя столбца добавляется перед каждым значением. Как получить значения в одиночку?