ROR 传递数组作为参数

ROR passing array as parameter

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

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

我也尝试了以下方法,它对我有用。我只想知道有什么好的解决办法

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

内部控制器:

@val = params[:medicine_id]

值来了,但我想把它做成数组。

需要一些帮助。谢谢。

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

?med_ids=[2,1]

如果你想在查询字符串中传递一个数组,你需要按如下方式传递它(正如你在问题中提到的):

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

作为对你问题的回答:第二种方式绝对是好方法,也是正确的方法。随它去吧。

如果您尝试发送 [1,2] 之类的参数,那么在您的控制器中您将得到类似“[1,2]”的信息,

并且您需要解析以获取原始数组,例如: JSON.parse“[1,2]”

ans: [1,2] 和 class 数组

您可以选择构建控制器来解析定界数组:

?medicine_ids=1,2

控制器:

medicine_ids = params[:medicine_ids].split(',')