params[:some_key]がStringだったり、ActionController::Parametersだったりしてややこしいので。
class MyController < ApplicatinoController
def my_action
#
hash_of(params[:some_key]) # 呼び出し
#
head: :no_content
end
private
def hash_of(param)
case param
when Hash # 本当にhashがあり得るのかは調べてない。
param
when String
JSON.parse(param) # JSON stringじゃなかったらエラーを吐く
when ApplicationController::Parameters
param.to_unsafe_h
end
end
end