Невозможно получить доступ к ActionController::Parameters, независимо от того, что я пытаюсь
Не знаю, почему я не могу получить доступ к этим параметрам, которые относятся к классу ActionController:: Parameters. Вот параметры:
{"{\"base_options\":{\"origin\":{\"name\":\"\",\"phone\":\"\",\"street_1\":\"\",\
"street_2\":\"\",\"zip\":\"\",\"city\":\"\",\"state_iso2\":\"\",\"country_iso2\":\
"US\",\"address_type\":\"commercial\"},\"destination\":{\"name\":\"\",\"phone\":\"\",
\"street_1\":\"932 MyStreet Dr\",\"street_2\":\"\",\"zip\":\"12345\",\"city\":\"Mecio\",
\"state_iso2\":\"NX\",\"country_iso2\":\"US\",\"address_type\":\"residential\"},
\"items\":"=><ActionController::Parameters {"{\"sku\":\"\",\"name\":\"\",
\"length\":{\"units\":\"in\",\"value\":0},\"width\":{\"units\":\"in\",\"value\":0},
\"height\":{\"units\":\"in\",\"value\":0},\"weight\":{\"units\":\"oz\",\"value\":10},
\"discounted_price\":{\"currency\":\"USD\",\"amount\":\"0\"},
\"declared_value\":{\"currency\":\"USD\",\"amount\":\"17.5\"},\"quantity\":1,
\"attributes\":"=>[{"}"=>{",\"customer\":{\"customer_groups\":"=>{"\"\""=>{"},\"cart_id\":\"05\"},
\"connection_options\":{\"auth_token\":\"adfasdf\",\"seller_id\":\"asdf\",\"marketplace\":\"5\"}
,\"zone_options\":"=>[{",\"rate_options\":"=>[{"}"=>nil}]}]}}}}]} permitted: false>,
"controller"=>"welcome", "action"=>"amazon_creds"}
Я пытаюсь получить пометку, но все, что я когда-либо получаю, это nil
со всем, что я пытаюсь. Я пробовал следующее:
params[:sku]
params["sku"]
params[:base_options][:sku]
params.as_json[:base_options]
params.as_json[:sku]
params.to_h[:sku]
params.to_unsafe_h.slice(:base_options)
params.to_unsafe_h[:sku]
params[0]
И да, я прочитал этот ActionContoller:: Параметры
Да, я в растерянности, не знаю, как получить доступ к этим params
, Кто-нибудь избавил меня от страданий?
1 ответ
Решение
Rails автоматически заполнит хэш params десериализованным телом запроса, если Content-Type
заголовок запроса установлен в application/json
, Похоже, что заголовок отсутствует для этого запроса. Мы добавляем соответствующий заголовок сейчас.