Rails访问表单参数,即数组

时间:2016-06-14 15:11:28

标签: ruby-on-rails arrays forms

我有一个允许输入多个ID的表单,如:

<input name="the_ids[]"  type="text" placeholder="Enter an ID" />
<input name="the_ids[]"  type="text" placeholder="Enter an ID" />
<input name="the_ids[]"  type="text" placeholder="Enter an ID" />

当表单提交时,我将params传递为:

"the_ids"=>["1, 2, 3"],

在控制器中,我试图以下列方式访问它们:

params[:the_ids[]].each do |id|
  do_something_with(id)
end

我一直收到错误:

wrong number of arguments (0 for 1..2)
> params[:the_ids[]].each do |id|

跟踪显示以下内容:

app/controllers/the_controller.rb:10:in `[]'  

我无法弄清楚这一点。我已经审核了其他一些帖子,并尝试使用其他语法进行访问:

params["the_ids[]"]

但是这产生了一个错误,表明这是一个零级......

如果需要更多详细信息,请告知。

1 个答案:

答案 0 :(得分:2)

正如您在"the_ids"=>["1, 2, 3"]中看到的那样,参数名称为the_ids,您可以使用params[:the_ids]访问它。

params[:the_ids].each do |id|
  do_something_with(id)
end

仅在客户端需要在the_ids[]中使用name="the_ids[]"来告诉Rails the_ids将作为数组参数读取。