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%2Ehu/list
But While trying to delete the user who containing the Dot(.), throws 404 error.
http://localhost:3000/developer/testuser%2Ehu/delete , thanks in advance
regards,
Loganathan
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:
http://guides.rubyonrails.org/routing.html#resources-on-the-web
Also do not pass the user name but the id.
Colin
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
rab
(Rob Biedenharn)
January 20, 2012, 8:05pm
6
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
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”
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