Я думаю, что вы упускаете из виду Javascript.
Ruby-код (<% .. %>
части в ваших примерах) запускается на сервере.
Код Javascript (var latlng = new google.maps.LatLng(10, 20);
и document.write(location.lat());
) выполняется в браузере.
Он также выполняется после кода ruby, когда сервер уже обработал запрос и сгенерировал страницу результатов.
Если вы хотите узнать значение location.lat()
на сервере, вам придется отправить его из браузера на сервер в запросе AJAX. В этом поможет любая популярная библиотека Javascript.