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 というモデルがあり、その関連付けに対して has_many DecDeclarationlines と accept_nested_attributes があるようです。したがって、コントローラーで次のように使用できるはずです。

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

パラメータがその構造に含まれている場合、ネストされた値が関連付けに自動的に割り当てられるためです。

于 2012-05-15T07:45:12.197 に答える