Railsでpersisted? が true のオブジェクトの値が保存されていない
RailsでCompany
モデルがあり、has_many
QuarterValue
という関係を持っています。
そしてCompany
のインスタンスメゾットでQuarterValue
の特定の値を一括で変更するという処理をしているのですが、何故か変更がDBに反映されません。
変更後に
company.quarter_values.map(&:persisted?)
を試すと全てtrue
が返ってきます。
またcompany.quarter_values.last
で該当カラムを確認すると値が変更されているのですが
quarter_value = QuarterValue.find(company.quarter_values.last.id)
で確認すると該当カラムの値は変更されていません。
該当のカラムの型はdecimal
で代入しようとしてる値はBigDecimal
です。
quarter_value.update(column_name: value)
で値を更新すると問題なく行われます。
一体何が問題なのでしょうか?
何か基本的な事を見落としてる気がするのですが、
どう調べれば良いかもわからない状態で困っています。
Rails: 4.2.1 でDBは Postgresql
を使っています。