Rails根据表名从哈希获取值

时间:2013-08-20 17:02:56

标签: ruby-on-rails

我认为解释这个问题的最佳方式是举例。这是一个带哈希的简单方法:

def getValues(table)
    allColumns = {
       'User' => ['first_name', 'last_name'],
       'Vehicle' => ['make', 'model', 'id'],
    }
end

我试图传入表并基于该表返回一系列值。我想知道(性能方面)实现这一目标的最佳方法。它是否使用switch语句,if / else,某种循环?如果你想出答案,请尽量包括一个例子,以便我能更好地理解。

1 个答案:

答案 0 :(得分:0)

我建议您先重命名参数,也许改为table_name或更具描述性的参数 其次,在ruby中使用由_分隔的方法名称是一种惯例,并避免使用camelCase作为另一种语言。
第三,我将列表放在一个常量变量或其他东西上,并在方法中引用它。

然后,您只需使用hash[key]即可根据键查找某些哈希值。

LIST = {
  'User' => ['first_name', 'last_name'],
  'Vehicle' => ['make', 'model', 'id'],
}

def get_values(table_name)
  LIST[table_name]
end

按键进行哈希查找可能是您可以对集合执行的最高性能操作之一,因此无需担心它。