在Rails应用程序中,我有一个接受查询参数的API控制器
module Api
class UserController < ApplicationController
def index
@users = User.where(query_params)
end
def query_params
params.permit( :id, :name)
end
end
end
我希望能够通过get请求将多个ID传递给此控制器操作。
api_users_path(id: User.my_scoped_selection.map(&:id) )
这会生成一个带有方括号
指示的ID数组的URLhttp://my.app/api/users?id[]=1
我也尝试在地址栏中手动输入
http://my.app/api/users?id=1,2,3
http://my.app/api/users?id=1&id=2&id=3
http://my.app/api/users?id[0]=1&id[1]=2&id[2]=3
其中没有一个正确过滤用户,我将返回所有用户。
如何格式化URL以正确传递参数值数组?或者,我应该如何构造控制器来处理多个参数值?
答案 0 :(得分:1)
对于允许一组id的强参数,您可以尝试
$sql = "UPDATE Device SET deviceID = '631403956MB21' WHERE
deviceID = '4631403956MB2'; ";
$sql .= "UPDATE EventData SET deviceID = '631403956MB21' WHERE
deviceID = '4631403956MB2'; ";
...
用于发送ID数组的URL
def query_params
params.permit(id: [], :name)
end