Rails params应该读取一个数组

时间:2013-11-13 21:22:18

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

我的问题很简单,我有一个简单的HTML表单(没有助手,没有模型),我想发送参数,所以params字典似乎是一个数组。

这是我的代码:

<div class="headers_line">
  <div class="header_field">
    <input type="text" placeholder="Header name" name="header[0][name]" class=
    "parameter_input" />
  </div>

  <div class="header_field">
    <input type="text" placeholder="Value" name="header[0][value]" class=
    "parameter_input" />
  </div>
</div>

<div class="headers_line">
  <div class="header_field">
    <input type="text" placeholder="Header name" name="header[1][name]" class=
    "parameter_input" />
  </div>

  <div class="header_field">
    <input type="text" placeholder="Value" name="header[1][value]" class=
    "parameter_input" />
  </div>
</div>

<div class="headers_line">
  <div class="header_field">
    <input type="text" placeholder="Header name" name="header[2][name]" class=
    "parameter_input" />
  </div>

  <div class="header_field">
    <input type="text" placeholder="Value" name="header[2][value]" class=
    "parameter_input" />
  </div>
</div>

这就是我的params的样子:

"header"=>{"0"=>{"name"=>"jnjnnj", "value"=>"nnjjn"}, "1"=>{"name"=>"jnnjjn", "value"=>"jnjnnj"}, "2"=>{"name"=>"jnjnjnjn", "value"=>"jnnj"}, "3"=>{"name"=>"", "value"=>""}}

尝试使用header [] [name]和header [] [value]也不起作用。

由于

2 个答案:

答案 0 :(得分:1)

抱歉,我在上一个回答中完全感到困惑。

params[:header].values.map(&:symbolize_keys)会为您提供所需的数组。

你不能直接得到它。

答案 1 :(得分:1)

好的,基于@ house9评论我做了以下事情:

我使用了header[name][]header[value][]

然后我通过执行以下操作创建了一个哈希数组:

headers = params[:header][:name].zip(params[:header][:value])