1

モデル宣言とmodelDeclarationlinesがあります。これは、accepts_nested_attributes_for:declarationlinesと多くの関係があります。これはうまく機能しますが、declarationlineフォームには2つの仮想属性'amount_whole'と'amoutn_decimal'があり、フォームを送信すると属性'amount'にマージされます。これは、私がこれを持っている場所での作成で機能します:

# Cycle declaration lines to merge amount_whole and amount_decimal into amount
@declaration.dec_declarationlines.each do |line|
  line.amount = (line.amount_whole.to_s + '.' + line.amount_decimal.to_s).to_d
end

しかし、更新時にこれがあり、宣言行にアクセスできないため、仮想属性をマージできません。

@declaration.update_attributes(params[:dec_declaration])

宣言を更新するときに仮想属性をマージする方法はありますか?

4

1 に答える 1

1

Uは宣言行にアクセスできます:

1)params[:dec_declaration][:declarationlines_attributes]

2)試し@declaration.assign_attributes(params[:dec_declaration])てから@declaration.dec_declarationlines.each ...

于 2012-06-11T09:43:08.847 に答える