Hey all,
I get the following error message:
ActionView::TemplateError (class or module required for rescue clause)
in app/vie$ app/helpers/format_helper.rb:116:in `divide_numbers’
Basically I have a field in database called Student Fails and I populate
fields with data. Sometimes the value can be empty - not null, not
integer, just empty because when user updates record they clear out
field and update it. First in my progressbar file I render a partial
called progressbar_item, passing in the string to the partial in render
method as well as data parameters that I can use in my progressbar file:
= render "dashboard/progressbar_item.html", :actual =>
@student_counters[:student_failed], :expected =>
cu.context.expected_student_failed, :title => “Student Fails”
Now with the data parameters available in my view, I call the
divide_numbers method with the values of those parameters so if
expected_student_failed was an empty value in database, that empty value
gets passed as the second argument:
= render “dashboard/progressbar.html”, :value =>
divide_numbers(actual.to_f, expected), :text => “#{actual} /
#{expected}”
Then the method is executed in format_helper:
def divide_numbers(x, y)
result = x / y
result.to_s == ‘NaN’ ? 0 : result
rescue 0
end
If y is nothing (empty), the error occurs. If y is an integer the error
doesn’t occur. Doesn’t this line take all non numbers like empty and
convert it to integer 0:
result.to_s == ‘NaN’ ? 0 : result
If that’s the case, then why do I get the error?
Will I be forced to do this (i haven’t tested this yet but I presume it
would work):
def divide_numbers(x, y)
result = x / y
if result.nil?
result.to_s = 0
else
result.to_s == ‘NaN’ ? 0 : result
end
rescue 0
end
Thanks for response.