我有一个允许输入多个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[]"]
但是这产生了一个错误,表明这是一个零级......
如果需要更多详细信息,请告知。
答案 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
将作为数组参数读取。