如何从Rails中的哈希值中提取值

时间:2017-09-19 03:45:15

标签: ruby-on-rails hash ruby-2.2

我有一个哈希,需要使用变量中的值年份 例子是:

2.2.4 :001 > @values_project
=> [#<CustomValue id: 20367, customized_type: "Project", customized_id: 492, custom_field_id: 64, year: "2017">] 

我需要这一年 所以当我尝试@value_hash.year收到错误

NoMethodError: undefined method `year' for
#<ActiveRecord::Relation:0x0000000712fb18>

我不明白为什么

4 个答案:

答案 0 :(得分:2)

如果您正在尝试获取关键年份的值,并且您的哈希是@values_project,那么您将使用
    @values_project[:year]

答案 1 :(得分:1)

因为它是像这样使用的对象数组

@values_project.each do |value_project|
  value_project.year
end

@values_project.first.year

答案 2 :(得分:1)

@value_hash不是hash,而是ActiveRecord::Relation(如错误所述)。

在您的示例中,@value_hash只有一个成员。要获取该成员,该成员是类CustomValue的实例(仍然不是hash!),您可以执行以下操作:

custom_value = @value_hash.first

然后,为了获得这一年,你可以做到:

custom_value.year

或者,您可以一次性完成:

@value_hash.first.year

这只是一个很长的方式来说明Sachin R所说的内容(所以你应该接受他们的回答)。

答案 3 :(得分:0)

您也可以尝试以下方式:

@value_project[0].year