Получение только определенных столбцов с Rails 3, где пункт
Не уверен, почему я не могу понять, как это сделать легко... Очевидно, я мог бы сделать это с использованием сырого SQL, но я пытаюсь ознакомиться с ActiveRecord.
results = Model.where(:lat => (south..north), :lng => (east..west))
Мне не нужны все поля, всего несколько. Как ограничить результаты только включением столбцов, которые я выбираю?
Ответы
Ответ 1
results = Model.where(:lat => (south..north), :lng => (east..west)).select([:lat, :long, :id])
Вероятно, вы также захотите включить :id
, в котором выберите, хотите ли вы, чтобы ваши результаты отображались как разумные объекты ActiveRecord
.
Изменить: выбор принимает один аргумент, может быть массивом.
Ответ 2
Вам нужно выбрать
Model.where(...). Выберите (...)
выберите accept array или raw sql string.
http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
Ответ 3
Технически, если вы хотите повторно использовать фильтр подмножества данных для моделей readonly, вы можете создать "представление" на уровне базы данных. См. http://dev.mysql.com/doc/refman/5.0/en/views.html