Raf*_*yan 36 ruby-on-rails http
如何通过rails中的Get方法传递参数数组?目前我的网址是这样的:
http://localhost:3000/jobs/1017/editing_job_suites/1017/editing_member_jobs/new?ids[]=1025&ids[]=1027
Run Code Online (Sandbox Code Playgroud)
如何使用Get方法传递数组但避免使用?ids[]=1025&ids[]=1027
.
使用javascript window.open方法发送请求.是否有任何解决方法发送不ajax Post请求.
Hom*_*man 103
如果您没有更改任何状态,并且只想访问只读值,则应该坚持使用GET请求.
要在GET请求中将一组id发送到rails,只需在末尾用方括号命名变量.
//angular snippet
$http.(method:'GET',
...
params: {'channel_id':2, 'product_ids[]': productIds}
//where productIds is an array of integers
...
)
Run Code Online (Sandbox Code Playgroud)
不要将您的ID连接为逗号分隔列表,只是冗余地单独传递它们.所以在网址中它看起来像这样:
?channel_id=2&product_ids[]=6900&product_ids[]=6901
Run Code Online (Sandbox Code Playgroud)
url编码它实际上会更像这样:
?channel_id=2&product_ids%5B%5D=6900&product_ids%5B%5D=6901
Run Code Online (Sandbox Code Playgroud)
Rails会为你分开这个.
Parameters: {"channel_id"=>"2", "product_ids"=>["6900", "6901"]}
Run Code Online (Sandbox Code Playgroud)
我最近想要这样做并找到一个稍微复杂一点的解决方法,因此有一些复杂性限制,但也可能更容易实现.不能说安全等
如果将数组值作为带分隔符的字符串传递,例如
http://example.com/controller?job_ids=2342,2354,25245
Run Code Online (Sandbox Code Playgroud)
然后,您可以获取结果并将其解析回您想要的内容:
job_ids = params[:job_ids].split(',')
Run Code Online (Sandbox Code Playgroud)
然后做任何事情:
job_ids.each do |job_id|
job = Job.find(job_id.to_i)
end
Run Code Online (Sandbox Code Playgroud)
等等
归档时间: |
|
查看次数: |
56118 次 |
最近记录: |