如何从其父对象构建参数(字符串)数组

时间:2014-02-24 13:58:58

标签: ruby-on-rails ruby arrays

假设我的模型定义了一个对象(使用Rails 3):

class User < ActiveRecord::Base
  belongs_to :List
  validates :name, presence: true
  validates :age, presence: true
end

对于某些给定对象User,如何构建字符串[name]数组? 喜欢:

ids = 1 , 2 , 3
Array.new (User.find_all_by_id(ids).name)

会有:

姓名[] = [“约翰”,“鲍勃”,“汤姆”] 任何想法?

3 个答案:

答案 0 :(得分:2)

看看采摘:

ids = [1,2,3]    
User.where(id: ids).pluck(:name)

您可以将数组传递到where条件,并且只需返回所需的列并返回数组

答案 1 :(得分:1)

要获取User模型中的一系列名称以获取特定的ID列表,您可以使用

User.where(id: ids).pluck(:name) 

其中ids = [1,2,3]

将导致查询

SELECT "users"."name" FROM "users" WHERE "users"."id" IN (1, 2, 3)

答案 2 :(得分:0)

o.find_all_by_id(ids)会返回一个数组。

o.where(id:ids)在Rails 4风格