Rails アプリを作成しており、メソッドの 1 つでこのコードを使用しています
item_numbers.inject(0) {|sum, i| sum + i.amount}
item_numbers は、私の item_numbers テーブルからのオブジェクトの配列です。それらに適用する .mount メソッドは、別のテーブルで item_number の値を検索し、それを BigDecimal オブジェクトとして返します。明らかに、inject メソッドは、返されたすべての i.mount オブジェクトを追加します。これは問題なく機能します。
このステートメントを
item_numbers.inject {|sum, i| sum + i.amount}
私の信頼できるつるはしの本によると、これらは同等であるはずです。i.mount が BigDecimal だからですか?もしそうなら、なぜ今それが機能するのですか?そうでない場合は、なぜ機能しないのですか。