我有一个带有嵌套参数的表单。在以下示例中,如何在控制器中获取“amount_whole”值?
Parameters: {"utf8"=>"✓", "authenticity_token"=>"KCmBI6RLh0LdUsM2r5H1vhNykS1IXecFe5Lct+TuIGc=", "dec_declaration"=>{"declaration_nr"=>"SAL_2012_0001", "dec_declarationlines_attributes"=>{"0"=>{"amount_whole"=>"75"}}
是这样的吗?
amount = params[:dec_declarations][:dec_declarationlines_attributes][:amount_whole]
答案 0 :(得分:7)
您忘记了散列中的"0"
索引。所以你应该能够像这样访问它:
amount = params[:dec_declaration][:dec_declarationlines_attributes]["0"][:amount_whole]
params散列使用符号和字符串作为键。
然而,判断购买params的结构看起来你有一个名为DecDeclaration的模型,它具有该协会的DecDeclarationlines和accepts_nested_attributes。所以你应该能够在控制器中使用它:
@dec_declaration = DecDeclaration.build(params[:dec_declaration])
@amount_whole = @dec_declaration.dec_declarationlines.first.amount_whole
因为如果params进入该结构,它将自动将嵌套值分配给关联。