Попробуйте использовать драгоценный камень rack-cors . И добавьте поле заголовка в ваш вызов ajax.
После того, как вопрос был обновлен:
q = [["99","99","99"],["9"]]
o = [["b","1"],["c","3"],["d","1"],["c","30"]]
q.flatten.map.with_index.with_object(Hash.new{ |h,k| h[k] = [] }) { |(qq, id), h| h[qq] << o[id] }.transform_values(&:to_h)
#=> {"99"=>{"b"=>"1", "c"=>"3", "d"=>"1"}, "9"=>{"c"=>"30"}}