I''ve been working on an idea to use a server-side image map to allow
users to click anywhere in an area and have a new element appear at the
location they clicked. Everything was going well, until it came time to
connect the routing map. Here are the relevant parts:
In the view, the map is created by --
<%= link_to(image_tag(''floor_plan.png'', :width =>
''1000'', :ismap =>
''true'', :style => ''position: absolute; top:
150px;''), :action =>
''generate_ticket'') %>
A click anywhere on the map will generate a url of the form
"/report/generate_ticket?287,374" where 287 is the x-coord and 374 is
the y-coord. So in the routes.rb file we have (at the top of the list)
--
map.connect '':controller/:action?:x,:y''
Now, if I drop into the console, load up the routing map, and evaluate,
this is what I get --
>> rs = ActionController::Routing::Routes
=> #<ActionController::Routing::RouteSet:0x197da14
@routes_by_controller=nil, ...>>>> rs.recognize_path ''/report/generate_ticket?10,20''
=> {:action=>"generate_ticket",
:controller=>"report", :y=>"20",
:x=>"10"}
However, when I click on the image map, the params that are returned to
report#generate_ticket are --
{"287,374"=>nil,
"action"=>"generate_ticket",
"controller"=>"report"}
Furthermore, if I remove all routes except for the one that should
handle the image map coordinates, then click on the map, I get --
no route found to match "/report/generate_ticket" with
{:method=>:get}
and I get the same error if I type the URL in manually. What gives?
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Joshua Ballanco wrote:> map.connect '':controller/:action?:x,:y''I don''t think having the comma in the route is a terribly good idea. Why not just use params? maps/index?x=123&y=456 -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Douglas Shearer wrote:>Joshua Ballanco wrote: >> map.connect '':controller/:action?:x,:y'' > >I don''t think having the comma in the route is a terribly good idea.What makes you say that? As far as I can tell, the ActionController::Routing::SEPARATORS constant for Rails 1.2.3 is: ["/", ";", ".", ",", "?"]. I can''t find any reason why "?" and "," shouldn''t function as well as "/" (though, admittedly it appears that in my situation they do not).> Why not just use params? > > maps/index?x=123&y=456I''d like to, but unfortunately setting the <img> element "ismap" to true dictates the behavior of the image map and you always end up with "/something/stuff?###,###". If you know of any way to communicate the xy-coords back to the server in a different way, I''m all ears! Oh, by the way, I''m trying this on Mac OS X using the WebKit nightlies and Camino 1.4, Rails 1.2.3 and Ruby 1.8.6. Thanks for the feedback! Cheers, Josh -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---