我想禁用
def create
self.resource = resource_class.send_reset_password_instructions(resource_params)
if successfully_sent?(resource)
respond_with({}, :location => after_sending_reset_password_instructions_path_for(resource_name))
else
respond_with(resource)
end
end
因此在发送重置密码
后根本不会重定向因此,我在app / controllers / users /下创建了一个名为passwords_controller.rb
的新文件看起来像这样
class User::PasswordsController < Devise::PasswordsController
def create
self.resource = resource_class.send_reset_password_instructions(resource_params)
if successfully_sent?(resource)
flash[:notice] = "sent password"
else
respond_with(resource)
end
end
def new
super
end
def update
super
end
def edit
super
end
end
并在我的路线中更改为
devise_for :users, :controllers => { :invitations => 'users/invitations', :passwords => 'users/passwords' }
我也有devise_invite gem ..
当我点击忘记密码的链接时,我收到此错误
Started GET "/users/password/new" for 127.0.0.1 at 2012-11-16 10:21:07 +0200
ActionController::RoutingError (uninitialized constant Users::PasswordsController):
我的rake routes
user_password POST /users/password(.:format) users/passwords#create
new_user_password GET /users/password/new(.:format) users/passwords#new
edit_user_password GET /users/password/edit(.:format) users/passwords#edit
PUT /users/password(.:format) users/passwords#update
视图中的链接是
<%= link_to "Forgot your password?", new_password_path(User) , :class => "control-group", :style => "position: absolute; bottom: 0", :id=>"forgotpass" %>
我错过了什么?
答案 0 :(得分:11)
密码控制器从设计密码控制器扩展。因此,使用设计密码控制器扩展密码控制器。
class PasswordsController < Devise::PasswordsController
......................
end
使用devise
更改密码控制器的路由devise_for :users, :controllers => { :passwords => "passwords" }
并且路线将是这样的: -
user_password POST /password(.:format) Passwords#create
new_user_password GET /password/new(.:format) Passwords#new
edit_user_password GET /password/edit(.:format) Passwords#edit
PUT /password(.:format) Passwords#update
答案 1 :(得分:1)
如果您想保留命名空间,请尝试:
# routes.rb
devise_for :users, controllers: { passwords: 'users/passwords' }
# users/passwords_controller.rb
class Users::PasswordsController < Devise::PasswordsController
...
end