开发者

Rails Routing help

I have the following in my routes.rb:

match "/profile/permissions" => 'profiles#edit_permissions', :as => 'edit_permissions', :via => :get    
match "/profile/permissions" => 'profiles#update_permissions', :as => 'update_permissions', :via => :post

Getting /profile/permissions works find, yet, when I post to /profile/permissions, I get:

Started POST "/profile/permissions" for 127.0.0.1 at 2011-03-29 12:12:09 -0400
ActionController::RoutingError (No route matches "/profile/permissions"):

Any ideas?开发者_C百科


Can you put your routes.rb in a gist? Sometimes there's a conflict, and extra eyes are needed to find it. Also, for the sake of fidgeting, you might try out the new shorthand:

get "/profile/permissions" => 'profiles#edit_permissions', :as => 'edit_permissions'    
post "/profile/permissions" => 'profiles#update_permissions', :as => 'update_permissions'

Unto themselves, both your routing text and this example successfully trigger their actions on the specified controller.

Start a test app, with only a routing file, run its server, and try to post to those URLs. If you want to use the Rails console, check out this.

> require "uri"
> require "net/http"
> url = app.update_permissions_url
> url = "http://localhost/profile/permissions" (if your domain is bollocks)
> Net::HTTP.post_form(URI.parse(url),{})

Easy to minimalize your environment for testing, now.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜