ユーザーを 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
、すばらしい gmaps4rails gem のおかげで美しいマップになる JSON として返されます。
私は多くのことを間違っていると確信しています(そしておそらく多くのことを非効率的にしています)...しかし、誰かがそれを機能させるために私を助けることができますか?