2012-03-12 16 views
0

レールでカスタムクエリを使用しています。 コードスニペットは、私は私が欲しいもの結果セットのオブジェクトからメタデータを取得する

@time_spent[index][:spent_on] 
@time_spent[index][:subject] 

を使用していた値を取得するために、今

@time_spent = TimeEntry.find(:all, 
          :joins => "INNER JOIN sometable ON x = y", 
          :select =>"id, subject, spent_on") 

のように見えるシンボルの代わりにインデックス番号を使用することです。そのため、実行時にselect節のフィールドを知る必要はありません。

私はその情報に

コメントをしてください使用できる結果セットのメタデータを取得することができれば、この

@time_spent[index][1] 
@time_spent[index][2] 

または

に似たいくつかのことをしたいですか?

+0

を使用し、attributes.kを使用しますeys法 –

答えて

0

@time_spentは、オブジェクトのコレクションがある場合は、これは、そのコレクション内の最初の[0]項目に指定されたインデックスの属性の値を取得します:第5回を取得するには、例えば

@time_spent[0].attributes.values[index] 

ので、コレクション内の2番目のオブジェクトの属性の値:

@time_spent[1].attributes.values[4] 
0

、結果セットからフィールド名を取得し、結果セットからフィールド名を取得するためにattributes.keys方法

関連する問題