我已经搜索/谷歌搜索,但我正在努力解决以下问题。LocalJumpError(Ruby on Rails)
我正在构建一个Rails 2.3.2应用程序,其中一个要求是计算结果数组的中值。我正在使用代码来计算Ruby Cookbook的中位数,但当我尝试查找有奇数个成员的数组的中位数时,仍然遇到接收错误“LocalJumpError - 没有给出任何代码块”的错误问题。
在我的视图的示例代码如下:
<%= survey_response.median([6,4,5,4,4,2]) %>
然后在survey_response.rb模型的方法如下:
def mean(array)
array.inject(array.inject(0) { |sum, x| sum += x }/array.size.to_f)
end
def median(array,already_sorted=false)
return nil if array.empty?
array = array.sort unless already_sorted
m_pos = array.size/2
return array.size % 2 == 1 ? array[m_pos] : mean(array[m_pos-1..m_pos])
end
时中值方法是指后面的误差引起到平均的方法来获得数组中奇数项目的媒体。我无法弄清楚为什么我会遇到这样的错误,或者确实如何解决这个问题 - 所以我非常感谢任何人可以给我提供的任何帮助/指导/大笑!
感谢
西蒙
嘿谢谢回复 - 不幸的是,没有什么区别。当数组中有奇数个项目时,仍然会出现相同的错误。有没有我可以提供的其他信息可能有用? – simonyoung 2009-06-24 09:08:18
谢谢 - 通过编辑mean()函数,这也是一种享受。 – simonyoung 2009-06-24 09:35:28