How to encode (.) Dot in url Rails

Hi All,

I am having routes like below to delete/list an user.

map.connect
‘developer/:user_name/delete’,:controller=>“developers”,:action=>“delete”,:method=>:delete

map.connect
‘developer/:user_name/list’,:controller=>“developers”,:action=>“list”,:method=>:get

While listing the user by encoding the Dot with %2E, i can see the
success
response
http://localhost:3000/developer/testuser.hu/listhttp://localhost:3000/developer/testuser.hu/list

But While trying to delete the user who containing the Dot(.), throws
404
error.

http://localhost:3000/developer/testuser.hu/deletehttp://localhost:3000/developer/testuser.hu/delete,
thanks in advance
regards,
Loganathan

On 20 January 2012 13:03, Tim S. [email protected] wrote:

You have the developer/:user_name/deleteroute set to use “delete” as the
method, rather than “get”

Since browsers usually don’t support sending requests other than post or
get, you’ll need to pass a “_method=delete” parameter to that route

Check out the rails guide on routing for more information:
Rails Routing from the Outside In — Ruby on Rails Guides

Also do not pass the user name but the id.

Colin

You have the developer/:user_name/delete route set to use “delete” as
the
method, rather than “get”

Since browsers usually don’t support sending requests other than post or
get, you’ll need to pass a “_method=delete” parameter to that route

Check out the rails guide on routing for more information:

Hi Tim,

I already tried with the get method too. but no luck.

regards,
Loganathan

Hi Colin

That was an api call, so we cannot change the url.

regards,
Loganathan

constraints (:version => /[0-9]{1}(?:.[0-9]{1,2})/) do
match 'ws/:api_version => ‘api#create’
end

This route will match to 'ws/1.23" and you will have params[:version] ==
“1.23”

On Sat, Jan 21, 2012 at 1:35 AM, Rob B.
[email protected]wrote:

While listing the user by encoding the Dot with %2E, i can see the success

You received this message because you are subscribed to the Google G.
“Ruby on Rails: Talk” group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.


Regards
Mukesh Paras Singh

On Jan 20, 2012, at 7:38 AM, Loganathan S. wrote:

Hi All,
I am having routes like below to delete/list an user.

map.connect
‘developer/:user_name/delete’,:controller=>“developers”,:action=>“delete”,:method=>:delete

You probably need to keep the ‘.’ from being treated as a separator
(like for a format):

:requirements => { :user_name => /.*/ }

-Rob

I solved the problem by adding ActionController::Routing::SEPARATORS =
%w( / ; , ? ) in my routes.rb
file, but an warning message is
displaying as below

config/routes.rb:12: warning: already initialized constant SEPARATORS

Want to know whether this warning will be an issue on future?

regards,
Loganathan