これを簡単に行う方法がわからない理由はわかりません...明らかに、未処理のSQLを使用して実行できますが、ActiveRecordに慣れようとしています。Rails 3 where where clause
results = Model.where(:lat => (south..north), :lng => (east..west))
私はすべてのフィールドがほしいとは限りません。選択した列のみを含むように結果を制限するにはどうすればよいですか?
これを簡単に行う方法がわからない理由はわかりません...明らかに、未処理のSQLを使用して実行できますが、ActiveRecordに慣れようとしています。Rails 3 where where clause
results = Model.where(:lat => (south..north), :lng => (east..west))
私はすべてのフィールドがほしいとは限りません。選択した列のみを含むように結果を制限するにはどうすればよいですか?
results = Model.where(:lat => (south..north), :lng => (east..west)).select([:lat, :long, :id])
また、おそらくあなたは、あなたの結果が妥当ActiveRecord
オブジェクトのように動作する場合、その選択に:id
を含めることになるでしょう。
編集:選択は、単一の引数をとり、配列にすることができます。
あなたは選択
Model.where(...)を使用する必要があります。
が配列または生のSQL文字列を受け入れる選択(...)を選択します。
http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
技術的には、読み取り専用モデルのデータサブセットフィルタを再利用する場合は、データベースレベルで「ビュー」を作成できます。 http://dev.mysql.com/doc/refman/5.0/en/views.html
ありがとうございました。上記のコードに対する一つの訂正は、unixcharlesが答えて言ったことです:selectの引数は、フィールドまたはSQL文字列の配列でなければなりません。 – Patm