ruby - make json from params hash -


i trying call api , pass data form in view controller , call api post method.

what in params is:

parameters: {"utf8"=>"✓", "authenticity_token"=>"kllavrc6kcndkfb1nkntstzgcg95cmct1uvencqwlgc=",   "score_sheet"=>{    "score_sheet_master"=>{      "issue_date(1i)"=>"2014", "issue_date(2i)"=>"6", "issue_date(3i)"=>"27"},     "print_date(1i)"=>"2014", "print_date(2i)"=>"6", "print_date(3i)"=>"27", "product_id"=>"2", "pull_id"=>"2", "press_run_id"=>"1", "total_section"=>"2",     "score_sheet_sections_attributes"=>{      "0"=>{"section_name"=>"a", "total_pages"=>"2", "color_pages"=>"1", "_destroy"=>"false"},       "1"=>{"section_name"=>"b", "total_pages"=>"1", "color_pages"=>"", "_destroy"=>"false"}},       "color_pages_rated"=>"1", "bw_pages_rated"=>"2", "foreman_id"=>"", "pic_id"=>""},     "score_sheet_master"=>{      "press_id"=>"1"},     "commit"=>"create score sheet"} 

i want hash converted following json apis accept. i-e.

{     "score_sheet": {         "score_sheet_master": {             "issue_date": "2014-06-25",             "press_id": "1"         },         "print_date": "2014-06-23",         "product_id": 1,         "pull_id": 2,         "press_run_id": 1,         "total_section": 2,         "score_sheet_sections_attributes": [             {                 "section_name": "a",                 "total_pages": 3,                 "color_pages": "2,3",                 "id": 9             },             {                 "section_name": "b",                 "total_pages": 1,                 "color_pages": "1",                 "id": 10             },             {                 "section_name": "c",                 "total_pages": 2,                 "color_pages": "2"             }         ],         "pic_id": 1,         "foreman_id": 1     } } 

some fields in json might missing or may more hash don't have concern handle them main issue convert params hash required json. hold on have implemented date conversion thing working fine. don't know how convert score_sheet_sections_attributes array format required format.

oh got myself:

sections = [] params["score_sheet"]["score_sheet_sections_attributes"].each {|k,v| sections << v} params["score_sheet"]["score_sheet_sections_attributes"] = sections 

which gives:

{"utf8"=>"✓", "authenticity_token"=>"kllavrc6kcndkfb1nkntstzgcg95cmct1uvencqwlgc=", "score_sheet"=>{"score_sheet_master"=>{"issue_date(1i)"=>"2014", "issue_date(2i)"=>"6", "issue_date(3i)"=>"27"}, "print_date(1i)"=>"2014", "print_date(2i)"=>"6", "print_date(3i)"=>"27", "product_id"=>"2", "pull_id"=>"2", "press_run_id"=>"1", "total_section"=>"2", "score_sheet_sections_attributes"=>[{"section_name"=>"a", "total_pages"=>"2", "color_pages"=>"1", "_destroy"=>"false"}, {"section_name"=>"b", "total_pages"=>"1", "color_pages"=>"", "_destroy"=>"false"}], "color_pages_rated"=>"1", "bw_pages_rated"=>"2", "foreman_id"=>"", "pic_id"=>""}, "score_sheet_master"=>{"press_id"=>"1"}, "commit"=>"create score sheet"} 

and dates have logic implemented , done.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -