Это поле
def format_to_two_dec(stringfield)
"%.2f" % stringfield # -> CRASHES
stringfield #--> OKAY - returns a string such as 900
end
Этот код вызывает запись с полем под названием total.
return_method =
proc do |the_self_ref|
the_record = the_self_ref.peek_next_db_record.select do |an_elem|
an_elem[:crectype] == '0004'
end
the_self_ref.format_to_two_dec(the_record[0][:total])
end
То, что я пытаюсь сделать, - это отформатировать число, чтобы оно имело два десятичных знака, а ВСЕГДА - два десятичных знака (т. Е. 900,00).
Я получаю ошибку:
// Scripts / create_835_record.rb: 168: в блоке (2 уровня) в eval_x12_commands: неинициализированная константа Create835Records :: C (NameError)
Формат записи:
record0004_format =
{
ctotal_charge: 15,
cdiscount: 15,
cineligible: 15,
cpended: 15,
callowed: 15,
cdeductible: 15,
ccopay: 15,
ccoinsurance: 15,
cbalance: 15,
cother_carrier: 15,
cpayment: 15,
cpatient_responsibility: 15,
primarypayment: 15,
excess: 15,
noncovered: 15
}
def eval_x12_commands
@list_of_segments_in_file.each do |a_cmd|
array_to_eval = a_cmd.split('|')
list_of_evaled = []
array_to_eval.each do |item|
**list_of_evaled << eval(item, binding)** //this line
end
the_method = @the_builder_for835.method(list_of_evaled[0])
begin
the_method.call(*list_of_evaled[1..-1])
rescue
puts "Eval Exception\n"
end
end
Надеюсь, этого будет достаточно - программа немного большая, но я могу выложить больше, если мне нужно.