it-swarm.com.ru

Ruby Rails - выбрать только несколько столбцов из базы данных

Как в Rails структурировать sql-запрос для выбора только определенных столбцов из базы данных, у меня есть несколько больших полей данных, которые я хочу избежать загрузки от непрерывных периодических вызовов ajax. Чтение без необходимости - это ресурс потребляет и медленно.

@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns 

Я ищу SELECT name, address FROM users; вместо того SELECT * FROM users;

50
Kapish M

Рельсы 3:

Item.select("name, address").where( .... )

110
nyaa

Используйте :select построить. Попробуй это:

@itemlist = Item.select('name, address', conditions: { .... } )

Для предыдущей версии Rails:

@itemlist = Item.find(:all,:select => 'name, address', :conditions => { .... } )
26
dku.rajkumar

Используя Arel (он же в Rails 3), используйте:

Item.where(...).select("name, address")

Кроме того, кажется .select игнорируется, если вы выбираете область действия, которая имеет: include => ...

10
Michelle Tilley
@itemlist = Item.select('name, address').where(...#some condition)
6
Kuberan

Попробуй это:

@itemlist = Item.find(:all, :select => "name, address", :conditions => { .... } )
2
coder_tim

Если вы хотите выбрать конкретные столбцы из Rails console, pluck( буду работать. Пример:

2.4.1 :007 > User.connection
2.4.1 :006 > User.all.pluck(:email)
   (0.3ms)  SELECT `users`.`email` FROM `users`
 => ["[email protected]", "[email protected]"] 

Обратите внимание, что это также будет работать в приложении Rails).

1
eriel marimon