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

How to extract value from hash in Rails

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

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>

我不明白为什么

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

因为它是对象数组,所以使用

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

@values_project.first.year

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

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

custom_value = @value_hash.first

然后,要获取年份,您可以这样做:

custom_value.year

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

@value_hash.first.year

Sachin R 说的很长(所以你应该接受他们的回答)。

您也可以尝试以下方法:

@value_project[0].year