Rails:获取单个记录的多个列值

mru*_*ult 3 activerecord ruby-on-rails ruby-on-rails-4

我想获得values单个记录的多列(希望是一个数组)。我有column names一个字符串数组。

就像是:

Model.first.select([:id,:name,:col1,:col2]).values
#=> [1,mrudul,col1_val,col2_val]  

# with column_names as array
# Model.first.select(columns_names.map(&:to_sym)).values  
Run Code Online (Sandbox Code Playgroud)

问题是我将列名作为字符串数组。我怎样才能做到这一点?

fre*_*oid 5

您可以使用#attributes返回记录属性散列并从中提取所需值的方法:

columns = [:id,:name,:col1,:col2]
model = Model.find(42)

model.first.attributes.extract!(*columns)
Run Code Online (Sandbox Code Playgroud)