Возвращать массив идентификаторов Привет Как я могу вернуть массив из вызова базы данных. в этом формате: ["141", "138", "123", "128", "137", "139"] Ответ 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...]
Ответ 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