我已创建自定义路由以路由到设计登录和注销路径:
devise_scope :admin do
get "logout" => "devise/sessions#destroy", as: :logout
get "login" => "devise/sessions#new", as: :login
end
这很有效。唯一的问题是,如果登录失败,它会重定向回admins/sign_in
而不是/login
。
有什么想法吗?
答案 0 :(得分:4)
根据this answer和this description,实现您尝试做的事情的正确方法似乎是使用:path_names
选项。根据Devise wiki的描述:
devise_for :admin, :path => '', :path_names => {:sign_in => 'login', :sign_out => 'logout'}
将为您创建正常的admin
路由,并将/sign_in
和/sign_out
路由分别分配给/login/
和/logout
。
使用:path
选项,您可以进一步更改网址,例如使用:path=>"admins"
会产生/admin/login
等路线。