Not to be a wet blanket, but wouldn't gon = Struct.new(:listings, :neighborhoods, :names, :nbh_id).new followed by populating gon and then calling gon.to_json have worked?
Al On Sun, Aug 18, 2013 at 8:15 AM, Donald Ziesig <[email protected]> wrote: > Hi All! > > This is not directly related to Hobo, but it was so cool I just had to > pass it on. > > I needed to transfer large amounts of data from multiple models to the > view's javascript. I was anticipating spending days, if not weeks, > generating the necessary code. One very lucky google search later, I found > the "gon" gem. This gem of a gem (I couldn't resist) takes data from ruby > (e.g., array of arrays of arrays, hashes containing arrays) and translates > it into a <script>....</script> containing the data in javascript code. > > In less than 20 minutes I had geographic data covering all of central > Florida and selected realestate listings moved from my db tables to the > view and processed by javascript code for display by google maps. > > Just add > > gem "gon" # Converts ruby objects to javascript objects in view !!!!! > > to your Gemfile (followed by bundle install). > > In the appropriate controller, setup the data then add: > > gon.listings = listings # An array of > hashes containing arrays of hashes > gon.neighborhoods = neighborhoods # An array of arrays of arrays > gon.names = names # An array of strings > gon.nbh_id = nbh_id # An array of integers. > > hobo_show # Plain old Hobo > > Add to the view(s): > > <%= include_gon %> <!-- might want to covert this to a dryml tag but > its so simple... --> > > > Finally, use the data in javascript files: > > poly = new google.maps.Polygon( > { > name: gon.names[i], > nbh_id: gon.nbh_id[i], > strokeColor: "#000000", > strokeOpacity: 0.8, > strokeWeight: 1, > fillColor: "#000000", > fillOpacity: 0.0, > paths: gon.neighborhoods[i] > }) > > If this is useful to anyone, let me know. With sufficient interest I > might even add it as a recipe ;) > > Don Ziesig > > -- > You received this message because you are subscribed to the Google Groups > "Hobo Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to > hobousers+unsubscribe@**googlegroups.com<hobousers%[email protected]> > . > To post to this group, send email to [email protected]. > Visit this group at > http://groups.google.com/**group/hobousers<http://groups.google.com/group/hobousers> > . > For more options, visit > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> > . > -- Finding a solution to a problem requires different thinking from that which created the problem. - paraphrasing Albert Einstein -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/hobousers. For more options, visit https://groups.google.com/groups/opt_out.
