Как получить массив с четкими данными из запроса Active Record без использования карты - PullRequest
0 голосов
/ 01 июня 2010

Привет, я хотел бы спросить, возможно ли получить массив с четкими данными из запроса ActiveRecord без использования карты, сбора или каждого из них

names = User.find(:all, :select => "name")
return names == [#<User name:"Peter">,#<User name:"Martin">]

и я хочу имена == ["Питер", "Мартин"] без использования карты, сбора или каждого. Спасибо за ваши ответы.

Ответы [ 3 ]

1 голос
/ 01 июня 2010

Даже если ActiveRecord предоставил метод для выполнения того, что вы хотите (от одного столбца до массива значений), он бы внутренне использовал цикл (каждый или сборник) для этого.

Я не вижу, что такого плохого в том, чтобы использовать цикл в этом случае, Ruby делает это довольно легко.

users = User.find(:all, :select => "name").collect { |u| u.name }
1 голос
/ 01 июня 2010
User.connection.select_values("SELECT name FROM users")
#=> ["francois"]
0 голосов
/ 01 июня 2010

Нет, вы не можете делать это без карты, собирать каждую ... и т.д. ......

Другими словами, вы не можете получить такой результат в одном запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...