結論
以下の順序に沿っていきます。説明を分かりやすくするため*1、一部で正確ではない表現を使っています。
1. 「モデル」オブジェクトの形でレコードを取得する
以下のようにしてItem
モデルの形でレコードを取得したとします。
result_records = Item.order( 'order_number', ).limit(10)
2. 取得したレコードを「バラす」
「1.」で取得したresult_records
はActiveRecord::Relation
のオブジェクトです。まだオブジェクトの「かたまり」の状態なので、以下のようにしてバラします。バラしたオブジェクトに対して施すメソッドはまだ書いていません。
result_records.each do |result_record| # ここに result_record に対して行う処理を書く end
3. バラしたオブジェクトから値を取得する
「2.」のresult_record
に対して.foobar
というメソッドを実行することでfoobar
カラムの生の値を取得することができます。以下がコード例です。
result_records.each do |result_record| puts result_record.foobar end
補足
以前の記事において「attributes メソッド」を用いるとよい、と書きましたが、確かにそれでもいいのですが、やや冗長になります*2。
また、ActiveRecord::Relation
オブジェクトに対してto_a
メソッドを実行して配列に変換し、その配列の個々の要素に対して「3.」のように実行しても同じ結果になります。