从Rails嵌套哈希中获取值

时间:2013-05-24 06:04:16

标签: ruby-on-rails

我有一个Rails嵌套哈希如下:

class = [{"tutor" => {"id" => "Me"}}, {"tutor" => {}}]

我想提取id列表,但嵌套的hash可以是nil:

tutor_ids = class.map {|c| c['tutor']['id'].to_i }

如果嵌套哈希是nil,我会收到错误。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

首先,我认为你可能正在考虑像这样的一系列哈希(假设多次使用相同的密钥:

klass = [{"tutor" => {"id" => "Me"}},{"tutor" => {}}]

然后您可以将导师ID映射到:

tutor_ids = klass.map {|k| k['tutor'] && k['tutor']['id'] }.compact

会导致

=> ["Me"]

Compact将丢弃之后遇到的所有nil值。

答案 1 :(得分:0)

id = class['tutor'] ? class['tutor']['id'] : nil