Rails:两级路由呈现根页面

时间:2012-10-04 19:58:01

标签: ruby-on-rails ruby routes

我在创建到我的应用的路线时遇到一些问题,请帮助我:)

任何人都可以向我解释为什么两级路由会呈现我的根页,无论路由是否真的存在。

让我举例说明:

我有路线: match '/p/novo' => 'user_roles#new', :as => :new_urole

我期望调用user_roles方法中的新方法,但它不会发生。而不是它,我的根页面被渲染,日志显示:

  

在2012-10-04 16:50:23 -0300开始获取127.0.0.1的“/ p / novo”   由HomeController处理#index为HTML

如果我从路线中移除'/ novo',一切正常!

任何人都可以帮助我吗?

编辑: 我不知道为什么,但我把路线放在一条链接到我的根的路线上方并且有效

我的rake:routes 工作

                    /auth/:provider/callback(.:format)                               session#create
        login_erro  /login/erro(.:format)                                            session#failure
            logout  /logout(.:format)                                                session#destroy
         new_urole  /p/novo(.:format)                                                user_roles#new
             event  /evento/:day/:month/:year/:url_name(.:format)                    events#show
                    /evento/:day/:month/:year/:url_name/confirmar_presenca(.:format) events#confirm_presence
painel_de_controle  /painel_de_controle(.:format)                                    users#control_panel
        city_index  /:state/:city(.:format)                                          home#index
              root  /                                                                home#index

1 个答案:

答案 0 :(得分:0)

new_urole不是GET路由,它可能是POST或PUT路由。这就是为什么它不匹配,你的请求是GET所以它一直落到匹配的第一个GET路由,root。

您需要更改表单:方法以匹配您的路线方法,POST或PUT。