在我目前正在处理的应用中,用户可以创建一个事件。当用户输入活动的位置时,我们会自动填写表单字段并使用Google Places API填写。现在,我有以下Coffeescript代码,我不太了解:
initLocationField = ->
addListing.locationField.autocomplete
messages:
noResults: '',
results: ->
source: (request, response) ->
$.ajax
url: "/locations"
data:
term: request.term
size_type: "local"
include_google_places: true
success: (data) ->
response data
根据Google的自动完成文档,我应该感兴趣的是两个可选参数;位置(用户的经度和经度,我们已经拥有)和半径(我们希望用户能够搜索的距离)。
我不知道这些可选参数可以添加到此Coffeescript代码中的哪个位置。也许在数据的某个地方?
我已经知道我要传递的参数是:
location: current_user.coords
radius: 30000
只是不知道把这些放在这里。
* * UPDATE
添加参数
后radius: 30000
到数据:在Coffeescript代码中设置,我发现了一些新东西。转到我的终端我现在看到当我在文本字段中键入文本时发生以下情况:
Started GET "/locations?term=1&size_type=local&include_google_places=true&radius=30000"
for 127.0.0.1 at 2013-12-24 10:25:00 -0500
Processing by TagsController#locations as */*
Parameters: {"term"=>"1", "size_type"=>"local", "include_google_places"=>"true", "radius"=>"30000"}
因为它告诉我这是由TagsController处理的,所以这里的位置就是那个动作:
def locations
@results = Location.autocomplete(location_params(params))
respond_with(@results)
end
所以看起来这些数据属性中的一些被传递到url,类似于google文档显示它的方式。这可能是一种类似的方式吗?
另外,第一个回复我的问题的人(谢谢)提到谷歌地方的实际代码可能会在其他地方进行,可能会在哪里?
答案 0 :(得分:0)
您似乎没有使用此代码调用google Places API。这似乎是使用自定义参数(“term”,“size_type”和“include_google_places”)调用应用程序的某些本地URI,而这些参数未在Places API调用自动填充中使用。
https://developers.google.com/places/documentation/autocomplete
无论如何,如果你想要添加两个额外的参数,你可以通过添加
来添加它location: current_user.coords
radius: 30000
正好在数据下面:元素