Ich habe gesucht/gegoogled, aber ich habe mit dem folgenden Problem zu kämpfen.LocalJumpError (Ruby on Rails)
Ich baue eine Rails 2.3.2 Anwendung und eine der Anforderungen ist es, den Median einer Reihe von Ergebnissen zu berechnen. Ich benutze Code für die Berechnung des Medians aus dem Ruby Cookbook, laufe aber weiter auf ein Problem mit dem Fehler 'LocalJumpError - no block given', wenn ich versuche, den Median eines Arrays mit einer ungeraden Anzahl von Mitgliedern zu finden.
Das Codebeispiel meiner Meinung nach ist wie folgt:
<%= survey_response.median([6,4,5,4,4,2]) %>
dann in survey_response.rb Modellen sind die Methoden, wie folgt:
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
Der Fehler wird verursacht, wenn die Median-Methode zurück verweist zu der mittleren Methode, um das Medium mit einer ungeraden Anzahl von Elementen im Array zu erhalten. Ich kann einfach nicht herausfinden, warum ich diesen Fehler bekomme oder wie ich ihn beheben kann - also würde ich jede Hilfe/Anleitung/Lachen, die jemand mir anbieten könnte, sehr schätzen!
Dank
Simon
Hey vielen Dank für die Antwort - leider macht das keinen Unterschied. Ich bekomme immer noch den gleichen Fehler, wenn eine ungerade Anzahl von Elementen im Array vorhanden ist. Gibt es weitere Informationen, die ich Ihnen zur Verfügung stellen kann? – simonyoung
Danke - mit der Bearbeitung der mean() -Funktion funktioniert das auch gut. – simonyoung