简体   繁体   English

从Google Places Autocomplete API保存响应数据

[英]Save Response Data from Google Places Autocomplete API

I have the following code in a "new" jobs view: 我在“新”作业视图中具有以下代码:

<input type="text" id="address" style="width: 500px;"></input>

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places"></script>
<script>
  var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {});

  google.maps.event.addListener(autocomplete, 'place_changed', function() {
    var place = autocomplete.getPlace();
    console.log(place.address_components);
  });
</script>

What should my create action look like to save the resulting address fields when selecting an address from the autocomplete input field? 从自动完成输入字段中选择地址时,我的create动作应该如何保存结果地址字段? I suppose I must find a way to populate my other form fields with the response. 我想我必须找到一种方法来用响应填充其他表单字段。 Also, any idea why the postal_code is not being shown in the results (but country is)? 另外,您知道为什么postal_code没有显示在结果中(而是国家/地区)吗?

My form view looks like: 我的表单视图如下:

<%= form_for(@job) do |f| %>
  <% if @job.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@job.errors.count, "error") %> prohibited this job from being saved:</h2>

      <ul>
      <% @job.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :customer %><br>
    <%= f.text_field :customer %>
  </div>
  <div class="field">
    <%= f.label :address %><br>
    <%= f.text_field :address %>
  </div>
  <div class="field">
    <%= f.label :city %><br>
    <%= f.text_field :city %>
  </div>
  <div class="field">
    <%= f.label :state %><br>
    <%= f.text_field :state %>
  </div>
  <div class="field">
    <%= f.label :postal_code %><br>
    <%= f.text_field :postal_code %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Looks like this page answers my question: 看起来此页面回答了我的问题:

https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform

From there, I can submit the filled-out form using a basic create action. 在这里,我可以使用基本的create操作提交填写好的表单。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM