![](/img/trans.png)
[英]Redirect root_path in rails for already signed_in user without using Devise
[英]Ruby on Rails - Devise always redirect to the root_path
在我的Ruby on Rails应用程序中,我使用devise对“管理员”进行身份验证。
我仅使用“管理员”模型,所以我修改了“ routes.rb”文件以定义我的网站自定义路线
routes.rb
Rails.application.routes.draw do
resources :contacts
devise_for :admins
#Personal Devise admin routes
as :admin do
#Session Block
get "/login" => "devise/sessions#new", :as => :admin_session_login
delete "/logout" => "devise/sessions#destroy", :as => :admin_logout
#Account Block
get "/register" => "devise/registrations#new", :as => :admin_register
get "/edit_account" => "devise/registrations#edit", :as => :admin_edit
end
end
我保存了文件并重新启动了服务器,但是当我尝试导航到该自定义路由之一(如“ / login”)时,应用程序将我重定向到http:// localhost:3000 /
当我尝试导航到/ login时,我还会发布服务器控制台日志:
控制台服务器日志
Started GET "/login" for 127.0.0.1 at 2015-06-29 18:15:32 +0200
ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
Processing by Devise::SessionsController#new as HTML
Admin Load (0.3ms) SELECT "admins".* FROM "admins" WHERE "admins"."id" = ? ORDER BY "admins"."id" ASC LIMIT 1 [["id", 1]]
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 46ms (ActiveRecord: 0.9ms
)
我无法添加评论。 如果您已经登录,您将始终被重定向到root_path。 您可以尝试其他方法找出答案。
更改默认的devise重定向路径,只需添加此方法
在您的应用程序控制器中
def after_sign_in_path_for(resource)
yourpathname_path(resource)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.