2011-07-11 13 views
17

これを簡単に行う方法がわからない理由はわかりません...明らかに、未処理のSQLを使用して実行できますが、ActiveRecordに慣れようとしています。Rails 3 where where clause

results = Model.where(:lat => (south..north), :lng => (east..west)) 

私はすべてのフィールドがほしいとは限りません。選択した列のみを含むように結果を制限するにはどうすればよいですか?

答えて

28
results = Model.where(:lat => (south..north), :lng => (east..west)).select([:lat, :long, :id]) 

また、おそらくあなたは、あなたの結果が妥当ActiveRecordオブジェクトのように動作する場合、その選択に:idを含めることになるでしょう。

編集:選択は、単一の引数をとり、配列にすることができます。

+0

ありがとうございました。上記のコードに対する一つの訂正は、unixcharlesが答えて言ったことです:selectの引数は、フィールドまたはSQL文字列の配列でなければなりません。 – Patm