我有一个模型,我喜欢我可以使用的采摘方法如果我这样做:

@x = AwesomeModel.all.pluck(:column_one, :column_two)

然后我得到一个多维数组:@x[][]用我的悲伤技巧,我用数字和他们一起工作:
@x[0][1]

我怎样才能使用cluck或类似的方法访问数组,如下所示:
@x[0][:column_two]

最佳答案

如果您关心的是从数据库中获得的内容的结构,那么您只需执行以下操作:

@x = AwesomeModel.all.select(:column_one, :column_two)

然后保持fast db query advantage+有AwesomeModel个实例,但只有column_onecolumn_two个实例
或者如果你想手动操作:
@x = AwesomeModel.all.pluck(:column_one, :column_two).map do |array|
  OpenStruct.new({column_one: array[0], column_two: array[1] }) }
end

然后可以像普通模型一样使用它:
@x[0].column_one
# or even
@x[0][:column_two]

关于ruby-on-rails - 采摘的好阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25767243/

10-12 05:14