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(',')
我正在尝试将数组作为参数传递给我的控制器方法,但它对我不起作用。我尝试了以下方法:
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(',')