使用Devise的devise_scope时找不到路由

时间:2013-06-06 06:35:14

标签: ruby ruby-on-rails-3 authentication web-applications devise

我在我的应用中使用设计进行身份验证。我的路线文件如下所示:

  devise_scope :user do
    get "/password_reset" => "devise/passwords#new", :as => "new_user_password"
    post "/password_reset/complete" => "devise/passwords#create", :as => "user_password"
    get "/password_renew" => "devise/passwords#edit", :as => "edit_user_password"
    put "/password_renew/complete" => "devise/passwords#update", :as => "password"
  end

完整的routes.rb文件:http://hastebin.com/vofaluhera.coffee

运行rake路线显示这些路线运作良好:

 new_user_password GET  /password_reset(.:format)            devise/passwords#new
     user_password POST /password_reset/complete(.:format)   devise/passwords#create
edit_user_password GET  /password_renew(.:format)            devise/passwords#edit
          password PUT  /password_renew/complete(.:format)   devise/passwords#update

然而,当我访问route / password_reset时,它会引发此错误:

Could not find devise mapping for path "/password_reset"

此外,当我切换到devise_for它工作正常,但有一个弃用警告,它会添加更多不需要的路由。所以基本上,我想坚持使用devise_scope

请帮我解决这个错误。

编辑: 事实证明我需要在使用devise_scope之前添加

devise_for :users, :skip => [:passwords]

0 个答案:

没有答案