合并accepts_nested_attributes_for的虚拟属性

时间:2012-06-11 08:36:12

标签: ruby-on-rails ruby-on-rails-3

我有一个模型声明和一个模型声明。它与accepts_nested_attributes_for:declarationlines有很多关系。这很有效,但声明行表单有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])

更新声明时如何合并虚拟属性的任何想法?

1 个答案:

答案 0 :(得分:1)

你可以访问声明行:

1)params[:dec_declaration][:declarationlines_attributes]

2)你可以尝试@declaration.assign_attributes(params[:dec_declaration])然后@declaration.dec_declarationlines.each ...