我如何通过Get方法在轨传递的参数数组? 目前我的网址loocs是这样的:
http://localhost:3000/jobs/1017/editing_job_suites/1017/editing_member_jobs/new?ids[]=1025&ids[]=1027
如何传递与Get方法的阵列,但避免?ids[]=1025&ids[]=1027
的一部分。
请求被用JavaScript window.open方法发送。 有没有什么解决办法送不阿贾克斯发布采购信息。
我如何通过Get方法在轨传递的参数数组? 目前我的网址loocs是这样的:
http://localhost:3000/jobs/1017/editing_job_suites/1017/editing_member_jobs/new?ids[]=1025&ids[]=1027
如何传递与Get方法的阵列,但避免?ids[]=1025&ids[]=1027
的一部分。
请求被用JavaScript window.open方法发送。 有没有什么解决办法送不阿贾克斯发布采购信息。
不,GET只能把变量的URL本身。 如果你想要的网址更短,你要POST。 这是HTTP,而不是轨道的限制功能。
你应该坚持使用GET请求,如果你不改变任何事物的状态,所有要访问一个只读值。
要发送一个ID阵列轨道在一个GET请求简单地命名用方括号在最后的变量。
//angular snippet
$http.(method:'GET',
...
params: {'channel_id':2, 'product_ids[]': productIds}
//where productIds is an array of integers
...
)
不串接您的ID作为一个逗号分隔的列表,只是通过他们的个人冗余。 因此,在URL会是这个样子:
?channel_id=2&product_ids[]=6900&product_ids[]=6901
URL编码它实际上更像是这样的:
?channel_id=2&product_ids%5B%5D=6900&product_ids%5B%5D=6901
Rails会为你分开这个退了出来。
Parameters: {"channel_id"=>"2", "product_ids"=>["6900", "6901"]}
我最近想做到这一点,并找到了一个解决方法就是有点不太复杂,因此具有一定的复杂性的限制,但也可能是更容易实现。 无法保障等说话
如果你有一个分隔符,例如,通过您的数组值作为字符串
http://example.com/controller?job_ids=2342,2354,25245
然后,你可以把结果和解析回给你想要的东西:
job_ids = params[:job_ids].split(',')
然后做什么:
job_ids.each do |job_id|
job = Job.find(job_id.to_i)
end
等等
@Homan答案是适用于使用外部客户端(例如curl
或角度)。 在Rails内部测试用例但是,你不应该使用[]
下面是一个例子:
get get_test_cases_url(**path_params), params: {case_ids: ["NON-9450", "NON-12345", "NON-9361"]}
这是使用新的格式,其中get_test_cases
是路线的名字,你传递给所有PARAMS需要构造URL路径的方法。 查询参数是一个单独的哈希值。
仅供参考,如果我使用[]
像case_ids[]
然后代替["NON-9450", "NON-12345", "NON-9361"]
我得到它解析为[["NON-9450"], ["NON-12345"], ["NON-9361"]]