2011-01-26 12 views
4

before_filter:athenticateユーザーを使用しているときに、Deviseのサインインパスを変更するにはどうすればよいですか?Deviseのsign_in URLを変更する

私はポストコントローラに次のものを持っています。

例えば:それは自動的に '/ユーザ/ sign_in'

に行く瞬間

class PostsController < ApplicationController 
    before_filter :authenticate_user! 

    def index 
     @posts = Post.all 
    end 
end 

私は '/ログイン' を使用したい

答えて

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パスは、ソリューションがsign_inのためのリソースパスを変更していないことのアカウント/ログイン "

+1

私はあなたがプレフィックススラッシュ( ' :path => '/' ')をルートURLとして使用します。しかし、私はRails 3のルーティングについて自信を持っていないので、わかりません。 –

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 

あなたの場合:あなたの代わりに投稿を使用します:私は信じています。 それは遅く、私はあまりにも曖昧ですが、私はそれを行うべきだと思います。

+0

おかげでマイクです。しかし、私はそれをdevise_forメソッドで並べ替えました。例えば、: devise_for:users、:controllers => {:登録> = '登録'}、:パス=> 'アカウント'、:パス名=> {:sign_in => 'ログイン'、:sign_up = :sign_out => 'logout'、:password => 'secret'、:確認=> '確認'} これでsign_inパスは 'accounts/login'です – onepixelsolid

2

です。

私はそれを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のためのリソースパスを変更しないものの、だから今sign_inパスは、「アカウント/ログイン」

関連する問題