我不知道如何将用户组合到 gmaps4rails 中的相同标记中。我觉得我有点接近,但不能完全弄清楚我在使用 gmaps4rails 帮助程序、转换为 JSON 和部分渲染之间做错了什么。
def map
distinct_locations = User.where("location IS NOT NULL").select("DISTINCT(LOCATION)").map(&:location)
@markers = []
distinct_locations.each do |city|
temp_marker = User.where(:location => city).first.to_gmaps4rails
city_users = User.where(:location => city)
render_to_string(:partial => "/users/map_marker_info", :locals => { :users => city_users})
@markers << temp_marker
end
@markers
end
如您所见,在我的控制器中,我首先得到一个 distinct_locations 数组,它只是一个城市名称数组(如“纽约,纽约”)。
然后我创建了@markers
保存我最终会返回的 JSON。
对于我找到的每个独特城市,我尝试使用我在该城市找到的第一个用户使用 to_gmaps4rails 帮助器首先创建一个标记。然后我试图找到城市中的所有其他用户(通过city_users = User.where(:location => city)
.
然后,我现在尝试使用同一个城市中的这个用户集合来呈现我的部分内容(但最终会从用户那里提取不同的属性):
#_map_marker_info.html.haml
.map_info_window
%h4
=users.first.location
%p
=users.count
@markers
最后,我在处理完每个城市后添加标记。
最终,我@markers
以 JSON 格式返回,这要感谢令人敬畏的 gmaps4rails gem。
我确定我做错了很多事情(并且可能很多事情效率低下)......但是有人可以帮助我让它工作吗?