Запросы ActiveRecord поддерживают параметр :select
, который позволяет вам определять поля, которые вы хотите вернуть в виде строки.
Обычно люди используют что-то вроде:
:select => 'field1, field2'
Если вы знаете необработанный язык запросов для вашего сервера базы данных, вы можете использовать его в строке выбора. При выборе полей с использованием SQL можно использовать модификатор as
:
select field1 as the_first_field, field2 as the_second_field
и база данных будет возвращать поля, используя новые имена полей вместо старых имен полей. Это простой способ управления устаревшими полями, которые имеют имена, конфликтующие с Rails, если ваша база данных поддерживает это.
См. "Научитесь любить ActiveRecord: выберите параметр" в " Пять советов ActiveRecord " и " Выбор определенных полей " в руководствах по Ruby on Rails.
Вот пример одного из моих приложений на Rails, использующего rails console
для доступа к моей базе данных Postgres:
ruby-1.9.2-p180 :007 > dn = DomainName.first
=> #<DomainName id: 1, domain_name: "ip72-208-155-230.ph.ph.cox.net", created_at: "2010-04-20 05:53:22", updated_at: "2010-04-20 05:53:22">
ruby-1.9.2-p180 :008 > dn = DomainName.first(:select => 'id, domain_name as dn')
=> #<DomainName id: 1>
ruby-1.9.2-p180 :009 > dn['id']
=> 1
ruby-1.9.2-p180 :010 > dn['dn']
=> "ip72-208-155-230.ph.ph.cox.net"