dejan (owner)

Revisions

gist: 123536 Download_button fork
public
Description:
Nesting params in Rails
Public Clone URL: git://gist.github.com/123536.git
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
>> params = {"line_items"=>[{"quantity"=>"1"}, {"quantity"=>"2"}]}
=> {"line_items"=>[{"quantity"=>"1"}, {"quantity"=>"2"}]}
 
>> query = CGI::unescape(params.to_query)
=> "line_items[][quantity]=1&line_items[][quantity]=2"
 
>> parsed_params = ActionController::AbstractRequest.parse_query_parameters(query)
=> {"line_items"=>[{"quantity"=>"1"}, {"quantity"=>"2"}]}
 
>> params == parsed_params
=> true
 
Ruby
1
2
3
4
5
6
7
8
9
10
11
>> params = {"line_items"=>[{"quantity"=>"1", "sales_taxes"=>["11", "12"]}, {"quantity"=>"2", "sales_taxes"=>["22", "23"]}]}
=> {"line_items"=>[{"sales_taxes"=>["11", "12"], "quantity"=>"1"}, {"sales_taxes"=>["22", "23"], "quantity"=>"2"}]}
 
>> query = CGI::unescape(params.to_query)
=> "line_items[][quantity]=1&line_items[][sales_taxes][]=11&line_items[][sales_taxes][]=12&line_items[][quantity]=2&line_items[][sales_taxes][]=22&line_items[][sales_taxes][]=23"
 
>> parsed_params = ActionController::AbstractRequest.parse_query_parameters(query)
=> {"line_items"=>[{"quantity"=>"1", "sales_taxes"=>[]}, {"quantity"=>"2", "sales_taxes"=>["12"]}, {"sales_taxes"=>["22"]}, {"sales_taxes"=>["23"]}]}
 
>> params == parsed_params
=> false # check out how much different they are