Я не думаю, что есть более быстрый способ сделать это.Я согласен с @Robin, может быть, вы можете сделать это небольшое улучшение, но вы не можете значительно улучшить производительность.
Я предлагаю, чтобы улучшить систему, чтобы вставить, как я делал это ранее на Rails2, несколько строк кода для автоматического определения долготы и широты записи, учитывая адрес и город записи, когда вам нужно создать новую запись.Таким образом, вы не будете выполнять трудоемкий цикл, как написали!
@shop = Shop.new(params[:shop])
@coordinates = []
seek_str = @shop.city + "," + @shop.address
@coordinates = Geocoding.get(seek_str)
@shop.lat = @coordinates[0][:latitude]
@shop.lng = @coordinates[0][:longitude]
Широта и долгота теперь геокодируются через город и адрес.Город и адрес записи вставляются с формой.Учтите, что это Rails 2, и, возможно, вам нужно внести некоторые изменения, чтобы это работало на Rails 3!