abh*_*sra 12 ruby ruby-on-rails devise
在我提交电子邮件给我发送重置密码说明后,我需要将我的Rails应用程序重定向到主页.默认情况下,设计在输入电子邮件后呈现登录表单.
所以我试图改写Devise::PasswordsController
并改变它redirect_to
,但没有成功.事实上,我认为Rails甚至不参加我的课程.这可能是一个非常愚蠢的错误,但我已经在这里呆了半天没有成功.
我想从这里覆盖密码控制器.
这是我的控制器:
class PasswordsController < Devise::PasswordsController
protected
def after_sending_reset_password_instructions_path_for(resource_name)
root_url
end
end
Run Code Online (Sandbox Code Playgroud)
routes.rb中:
devise_for :users, :controllers => {:passwords => "passwords"}
devise_for :users, :controllers => {:registrations => "registrations"}
devise_for :users, :controllers => {:sessions => "sessions"}
Run Code Online (Sandbox Code Playgroud)
我想提一下,我在同一个应用程序中覆盖了Devise的注册和会话控制器,它们似乎工作正常.
0x4*_*672 12
应该可以使用最新版本的Devise(2.1.2)覆盖控制器.
class PasswordsController < Devise::PasswordsController
def new
super
end
def create
..override method here..
end
end
Run Code Online (Sandbox Code Playgroud)
并在config/routes.rb
:
devise_for :users, controllers: { passwords: 'passwords', .. }
Run Code Online (Sandbox Code Playgroud)
您可以检查rake routes
Rails是否使用派生PasswordsController
而不是原始路由,路由应该包含passwords#new
而不是devise/passwords#new
.
归档时间: |
|
查看次数: |
10986 次 |
最近记录: |