Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 每个_值提升命名错误_Ruby - Fatal编程技术网

Ruby 每个_值提升命名错误

Ruby 每个_值提升命名错误,ruby,Ruby,我有一些模型,其中我有以下代码: appraisal_detail.each_value { |detail| # some code... } 它通过消息“undefined method'each_value'”引发NoMethodError。我做错什么了吗?欢迎提出任何建议 以下是引发错误的方法的全部内容: def self.update_appraisal_details(appraisal, appraisal_detail) status = true apprais

我有一些模型,其中我有以下代码:

appraisal_detail.each_value { |detail|
  # some code...
}
它通过消息“undefined method'each_value'”引发NoMethodError。我做错什么了吗?欢迎提出任何建议

以下是引发错误的方法的全部内容:

def self.update_appraisal_details(appraisal, appraisal_detail)
  status = true

  appraisal_detail_ids = appraisal.employee_appraisal_detail_ids

  appraisal_detail.each_value { |detail| 
    appraisal_detail = find_by_employee_appraisal_id_and_kra_list_id(appraisal.id, detail[:kra_list_id])

    if appraisal_detail.nil? # For newly added KRA
      new_detail = EmployeeAppraisalDetail.new(detail.merge({:employee_appraisal_id => appraisal.id}))
      status = (new_detail.save && status)
    elsif appraisal_detail.status == "Inactive" 
      status = (appraisal_detail.update_attributes(:status => "Active") && status)
      appraisal_detail_ids.delete(appraisal_detail.id)
    else 
      appraisal_detail_ids.delete(appraisal_detail.id)
    end
  }
end

您应该将
Hash
对象作为
evaluation\u detail
传递

>> {1=>2}.each_value {|x| p x}
2
看起来您正在传递非散列对象

>> [].each_value { |x| p x }
NoMethodError: undefined method `each_value' for []:Array
    from (irb):1
    from /usr/bin/irb:12:in `<main>'
>[]每个_值{| x | px}
NoMethodError:[]的未定义方法“每个值”:数组
来自(irb):1
from/usr/bin/irb:12:in`'

传递给
更新\u评估\u详细信息的值是多少
?给出完整的错误堆栈。。