Ruby rails-выберите только несколько столбцов из базы данных
как в rails структурировать sql-запрос, чтобы выбрать только определенные столбцы из базы данных, у меня есть некоторые большие поля данных, которые я хочу избежать загрузки из непрерывных периодических вызовов ajax. Чтение без необходимости потребляет много ресурсов и происходит медленно.
@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns
Я ищу SELECT name, address FROM users;
вместо SELECT * FROM users;
6 ответов
использовать :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 => ...
Если вы хотите выбрать определенные столбцы из rails console
, pluck(
будет работать.
Пример:
2.4.1 :007 > User.connection
2.4.1 :006 > User.all.pluck(:email)
(0.3ms) SELECT `users`.`email` FROM `users`
=> ["test@test.com", "another_test@test.com"]
обратите внимание, что это также будет работать внутри приложения Rails.