ROR传递数组作为参数

时间:2015-07-23 13:22:06

标签: ruby-on-rails arrays parameter-passing

我正在尝试将数组作为参数传递给我的控制器方法,但它对我不起作用。我尝试了以下方式:

http://localhost:3000/med?med_ids=[2,1]

我也尝试了以下方式,并为我工作。我只是想知道任何好的解决方案

http://localhost:3000/manufacturer/1/medicines?medicine_id[]=2&medicine_id[]=1

控制器内部:

@val = params[:medicine_id]

值即将到来但我希望将其作为数组。

需要一些帮助。谢谢。

2 个答案:

答案 0 :(得分:5)

你不能从这样的查询字符串中获取数组:

?med_ids=[2,1]

如果你想在查询字符串中传递一个数组,你需要按照以下方式传递它(如你所提到的那样):

?medicine_id[]=2&medicine_id[]=1

作为你问题的答案:第二种方式绝对是好方法和正确方法。跟着它。

答案 1 :(得分:1)

如果您尝试发送[1,2]之类的参数,那么在您的控制器中,您将会得到像#34; [1,2]",

你需要解析get in original数组,如: JSON.parse" [1,2]"

ans:[1,2]和类Array