我有一个YAML文件:

0:
  price: 0
  storage: 8
  instances: 1
  hours: 2
1:
  price: 9.99
  storage: 8
  instances: 2
  hours: 25

我正试图选择所有付费计划,仅限于此:
@plans = YAML.load_file("#{Rails.root}/config/plans.yml")
@paid_plans = @plans.select {|plan| plan[1]['price'] > 0}

但上面说
no implicit conversion of string into integer

我做错什么了?

最佳答案

YAML值只是字符串,因此plan[1]['price']返回'9.99',因此我认为在进行比较之前,需要将值转换为数值类型例如plan[1]['price'].to_f > 0

关于ruby-on-rails - Ruby Hash选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32460444/

10-14 15:00