私はRubyに、ユーザーの経費を追跡し、それに基づいてレポートを生成できるシンプルな財務アプリを持っています。
経費はさまざまなカテゴリに属しており、各経費のどれだけが税金であるかに影響します。
経費に関するレポートを生成するための私のコードには、次の部分があります。
tax_totals = [0] * 13
totals = [0] * 13
expenses.each do |expense|
tax_ratio = tax_rate/(1+tax_rate)
category = Category.find(expense.category_id).first
tax_ratio *= category.tax_rate.to_f / 100
if !expense.rate_id.nil?
subcategory = Rate.where("id = ?", expense.rate_id).first
tax_ratio *= subcategory.tax_rate.to_f
end
tax_totals[expense.transaction_date.to_date.month] +=
(expense.amount * tax_ratio)
totals[expense.transaction_date.to_date.month] += expense.amount
end
次の行で構文エラーが発生し続けますtax_ratio = tax_rate/(1+tax_rate)
:
syntax error, unexpected '(', expecting keyword_end
その行を削除すると、エラーは次のtax_ratio *= category.tax_rate.to_f / 100
行に移動します。
syntax error, unexpected tINTEGER, expecting keyword_end
そして、これがどこから来ているのか、私にはアイデアがありません。コードに問題はまったくありません。私は複数の関数に非常によく似たコードを持っており、それぞれがわずかに異なる方法で計算を行っています。しかし、これだけが問題です。
多分それはカフェインの不足です。このコードに何か問題がありますか?これを引き起こしているファイルに何か他のものがありますか?どうすればデバッグを進めることができますか?
乾杯!
編集:私はそれを理解しました。Rubynoobの間違い。以下の回答を参照してください。