更改Devise的sign_in url

时间:2011-01-26 04:53:54

标签: ruby-on-rails devise

在使用before_filter:athenticate用户时,如何更改Devise的登录路径?

我在帖子控制器中有以下内容。

例如:

class PostsController < ApplicationController
    before_filter :authenticate_user!

    def index
        @posts = Post.all
    end
end

此刻它会自动转到'/ users / sign_in'

我想使用'/ login'

3 个答案:

答案 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我相信。 它迟到了,我很模糊,但我认为应该这样做。