ROR传递数组作为参数

nil*_*ash 5 arrays ruby-on-rails parameter-passing

我正在尝试将数组作为参数传递给我的控制器方法,但它不适用于我.我通过以下方式尝试了它:

http://localhost:3000/med?med_ids=[2,1]
Run Code Online (Sandbox Code Playgroud)

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

http://localhost:3000/manufacturer/1/medicines?medicine_id[]=2&medicine_id[]=1
Run Code Online (Sandbox Code Playgroud)

内部控制器:

@val = params[:medicine_id]
Run Code Online (Sandbox Code Playgroud)

值即将到来,但我想将其作为数组.

需要一些帮助.谢谢.

RAJ*_*RAJ 6

您无法从查询字符串中获取数组,如下所示:

?med_ids=[2,1]
Run Code Online (Sandbox Code Playgroud)

如果要在查询字符串中传递数组,则需要按如下方式传递它(如您所提到的那样):

?medicine_id[]=2&medicine_id[]=1
Run Code Online (Sandbox Code Playgroud)

作为你的问题的答案:第二种方式是绝对好方法和正确的方法.去吧.


小智 3

如果您尝试发送像[1,2]这样的参数,那么在您的控制器中您将得到像“[1,2]”,

并且您需要解析原始数组中的 get ,例如: JSON.parse "[1,2]"

ans: [1,2] 和类数组