Подтвердить что ты не робот

Возвращать массив идентификаторов

Привет Как я могу вернуть массив из вызова базы данных.

в этом формате: ["141", "138", "123", "128", "137", "139"]

4b9b3361

Ответ 1

В Rails 4: (ht @ri4a)

User.ids # integer array
User.ids.map(&:to_s) # string array

В Rails 3/4:

User.pluck(:id) # integer array
User.pluck(:id).map(&:to_s) # string array

Старый ответ

Если вы хотите перейти непосредственно к БД:

> ActiveRecord::Base.connection.select_values("select id from users")
["1", "2", "5", "6", "7", "8", "3", "10", "11", "9"]

Если у вас уже есть модель:

User.all(:select => :id).collect(&:id)

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

Ответ 2

Если у вас есть has_many, то на стороне has_many вы можете получить идентификаторы для связанных объектов следующим образом:

def User
  has_many :tasks
end

def Task
  belongs_to :user
end

ids = User.find(1).task_ids

Ответ 3

Как насчет:

ClassName.all.collect { |obj| obj.id }

Ответ 4

Если вы используете модель, есть новый метод - pluck. Comment.pluck(: id) # [1,2,3...]