3

我有一个带有嵌套参数的表单。在以下示例中,如何获取控制器中的“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]
4

1 回答 1

7

您忘记了"0"哈希中的索引。所以你应该能够像这样访问它:

amount = params[:dec_declaration][:dec_declarationlines_attributes]["0"][:amount_whole]

params 散列使用符号和字符串作为键。

编辑

但是,判断购买参数的结构,看起来您有一个名为 DecDeclaration 的模型,该模型具有该关联的_many DecDeclarationlines 和accepts_nested_attributes。所以你应该可以在控制器中这样使用它:

@dec_declaration = DecDeclaration.build(params[:dec_declaration])
@amount_whole = @dec_declaration.dec_declarationlines.first.amount_whole

因为如果参数进入该结构,它会自动将嵌套值分配给关联。

于 2012-05-15T07:45:12.197 回答