假设以下由字符串数组组成的参数字符串,将其提交到Rails的正确方法是什么
&auth=6db2f8aa0af80748&guest={surname:"Tizio",name:"Caio",type:"A"}&guest={surname:"Cane",name:"Pippo",type:"B"}&guest={surname:"Topo",name:"Giggio",type:"C"}'
答案 0 :(得分:1)
您的字符串看起来像是关于在GET请求的查询字符串中传递参数。
要传递哈希数组,可以使用以下语法:
&auth=6db2f8aa0af80748&guest[][surname]=Tizio&guest[][name]=Caio&guest[][type]=A&guest[][surname]=Cane&guest[][name]=Pippo&guest[][type]=B&guest[][surname]=Topo&guest[][name]=Giggio&guest[][type]=C
在服务器上,此字符串解释为:
>> Parameters: {"auth"=>"6db2f8aa0af80748", "guest"=>[{"surname"=>"Tizio", "name"=>"Caio", "type"=>"A"}, {"surname"=>"Cane", "name"=>"Pippo", "type"=>"B"}, {"surname"=>"Topo", "name"=>"Giggio", "type"=>"C"}]}
在解析查询字符串时,Rails将guest
解释为数组,因为[]
之后是guest
。 guest[][surname]
使其使用键surname
创建哈希,并将其添加到数组guest
中。下一个参数guest[][name]
也会被解释为哈希的一部分,但是它不会创建新的哈希,而是将这个键值对添加到guest
的最后一个哈希中。其他参数将添加到该哈希中,直到满足哈希中已存在的键为止。在这种情况下,将创建并添加新的哈希。