如何将Rails devSign_in路径设置为根URL

时间:2019-03-28 13:18:28

标签: ruby-on-rails ruby devise rubygems

devise_for :admins, path: 'admins' 
devise_scope :admin do
  root to: "devise/sessions#new"
end
http://localhost:3000/

我只想在url上方输入时,我想重定向admins / sign_in路径,登录页面有时会打开,但是每次我遇到此错误而不登录时,都单击登录按钮。如何解决此问题?

错误:

由于:require_no_authentication呈现或终止了过滤链   重定向

3 个答案:

答案 0 :(得分:0)

您可以通过此实现

routes.rb

root "home#index"
devise_for :admins, path: 'admins' 

home_controller.rb

class HomeController < ApplicationController
def index
   if not admin_signed_in?
     redirect_to admin_session_path
   end
end

答案 1 :(得分:0)

已登录的用户无法再次登录...

您可以在 session_controller.rb 添加

中进行尝试
class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end

答案 2 :(得分:0)

您似乎正在尝试不登录而再次登录同一用户

devise_for :admins, path: 'admins' 

devise_scope :admin do
  authenticated :admin do
    root 'home#index', as: :authenticated_root
  end

  unauthenticated do
    root 'devise/sessions#new', as: :unauthenticated_root
  end
end