Ответ 1
Рельсы 3:
Item.select("name, address").where( .... )
Каким образом в rails для структурирования SQL-запроса можно выбрать только определенные столбцы из базы данных, у меня есть несколько больших полей данных, которые я хочу избежать загрузки из непрерывных периодических вызовов ajax. Чтение излишне ресурсоемких и медленных.
@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns
Я ищу SELECT name, address FROM users;
вместо SELECT * FROM users;
Рельсы 3:
Item.select("name, address").where( .... )
Используйте конструкцию :select
. Попробуйте следующее:
@itemlist = Item.select('name, address', conditions: { .... } )
Для предыдущей версии Rails:
@itemlist = Item.find(:all,:select => 'name, address', :conditions => { .... } )
Используя Arel (он же в Rails 3), используйте:
Item.where(...).select("name, address")
Кроме того, кажется .select игнорируется, если вы применяете к области, которая имеет: include = > ...
@itemlist = Item.select('name, address').where(...#some condition)
Попробуйте следующее:
@itemlist = Item.find(:all, :select => "name, address", :conditions => { .... } )