从导轨mongoid中查询大量键

问题描述 投票:0回答:1

我有一个在mongo上运行的Rails应用。我需要查询一个文档来执行大量计算。密钥列表很大,例如50多个。

我将在模型本身中编写计算方法。

由于键的数量巨大,如果我继续将键的值分配给局部变量并使用它们,则必须创建50个以上的局部变量。它看起来像如下:

def get_score
  record = Model.last
  a1 = record['k1'],
  a2 = record['k2'],
  a3 = record['k3'] 
  ##---so--on 50 plus keys
  #formulae. Where I will be using the a1...a50 variables to calculate.
end

这将使方法不必要地显得庞大,并且根本看起来效率不高。有没有一种方法可以将这些键添加到文件或哈希中,并映射并一次在模型上调用这些键?

ruby-on-rails mongoid
1个回答
0
投票

为了避免重复的哈希访问,您可以这样做:

hash={'a1'=>1,'a2'=>2}
eval (1..2).map { |i| "@a#{i} = hash['a#{i}'];" }.join

这给您@a1@a2

我不知道如何以编程方式创建局部变量。您可以写入binding,但不能写入本地范围。

© www.soinside.com 2019 - 2024. All rights reserved.