Из приведенного кода видно, что GPolyline.new принимает 1-й параметр в виде массива (массив), поэтому попробуйте это
polystring = [[27.4037755983,89.4263076782],[27.5155793659,89.3245124817]]
polyline = GPolyline.new(polystring,"#ff0000",3,1.0)
@map.record_init @map.add_overlay(polyline)
также
polystring = "[27.4037755983,89.4263076782],[27.5155793659,89.3245124817]"
arr1= [polystring]
arr2= [[27.4037755983,89.4263076782],[27.5155793659,89.3245124817]]
then arr1[0] = "[27.4037755983,89.4263076782],[27.5155793659,89.3245124817]" where as
arr2[0] = [27.4037755983,89.4263076782]