我在地址字段中使用gmaps-autocomplete-rails gem,它在部分(_form)中输入地址时工作正常并显示地图,但我如何在视图中显示此标记?...我必须做其他事情或使用另一个gem来在视图中显示标记(show.html.erb)?...我需要在控制器中添加一些代码?
型号:
geocoded_by :address, :latitude => :lat, :longitude => :lng
after_validation :geocode, :reverse_geocode, :if => :address_changed?
reverse_geocoded_by :lat, :lng do |obj,results|
if geo = results.first
obj.street = geo.address
obj.city = geo.city
obj.state = geo.state
obj.country = geo.country
end
部分_form(地址字段):
= f.input :address, input_html: { id: 'gmaps-input-address'}, placeholder: 'Start typing a place...', label: 'Location Missing'
....
#gmaps-canvas
的application.js:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require turbolinks
//= require gmaps-auto-complete
//= require_tree .
$(document).ready(function() {
var completer;
completer = new GmapsCompleter({
mapElem: "#gmaps-canvas",
zoomLevel: 5,
mapType: google.maps.MapTypeId.ROADMAP,
pos: [41.877, 12.480],
inputField: '#gmaps-input-address',
errorField: '#gmaps-error',
debugOn: false
});
});
控制器:
before_action :find_mark, only: [:show, :edit, :update]
....
def create
@mark = Mark.create(mark_params)
if @mark.save
redirect_to @mark
else
render 'new'
end
end
def update
if @mark.update(mark_params)
redirect_to @mark
else
render 'edit'
end
end
private
def mark_params
params.require(:mark).permit(:address, :lat, :lng, :street, :city, :state, :country)
end
def find_mark
@mark = Mark.find(params[:id])
end