在使用before_filter:athenticate用户时,如何更改Devise的登录路径?
我在帖子控制器中有以下内容。
例如:
class PostsController < ApplicationController
before_filter :authenticate_user!
def index
@posts = Post.all
end
end
此刻它会自动转到'/ users / sign_in'
我想使用'/ login'
答案 0 :(得分:10)
使用devise_for方法为现在的人排序。
devise_for :users, :controllers => { :registrations => 'registrations' }, :path => 'accounts', :path_names => { :sign_in => 'login', :sign_up => 'new', :sign_out => 'logout', :password => 'secret', :confirmation => 'verification' }
所以现在sign_in路径是'accounts / login'
答案 1 :(得分:2)
该解决方案不会修改sign_in的资源路径。
但我通过devise_for方法对其进行了排序。例如:
devise_for :users,
:controllers => { :registrations => 'registrations' },
:path => 'accounts',
:path_names => { :sign_in => 'login',
:sign_up => 'new',
:sign_out => 'logout',
:password => 'secret',
:confirmation => 'verification' }
所以现在sign_in路径是'accounts / login'
答案 2 :(得分:1)
我认为您要查找的信息位于:https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes
从文档中窃取:
devise_scope :user do
get "/login" => "devise/sessions#new"
end
在你的情况下你会使用:post而不是:user我相信。 它迟到了,我很模糊,但我认为应该这样做。