2017-09-10 10 views
0

subdomainという制約の下でサインインパスを作成するためにルートルートを作成しようとしています。このdeviseとサブドメイン制約を使用したRailsルーティング

Rails.application.routes.draw 
    constraints subdomain: 'admin' do 
    devise_scope :admin do 
     root to: 'devise/sessions#new' 

     # here I override devise routes 
    end 
    end 

    root to: 'pages#homepage' 

    # rest of the routes 
end 

よう

マイconfig/routes.rb見て何かを私がするように、エラーCould not find devise mapping for path "/".

任意の提案を取得していますどのように工夫スコープを持つサブドメインのルートパスへのIルート?工夫authenticatedメソッドを使用ルートに制約の認証を追加するには

おかげ

+0

は、それがそのように動作しますありません。 {subdomain: 'admin'} ' –

+1

ありがとうございます。私は 'devise_scope'ブロックの中に入れてデフォルトのdeviseルートを上書きする必要があります。これを行うために、私はそれを 'constraint'ブロックの中に入れました。何とか、私はまだそこから 'devise'コントローラにアクセスすることができません。 –

答えて

1

:制約、「工夫/セッション新しい#」:に `ルート:

Rails.application.routes.draw 
    constraints subdomain: 'admin' do 
    authenticated :admin do 
     # the root page for authenticated users 
     root 'admin#dashboard', as: :authenticated_root 
    end 
    root to: 'devise/sessions#new' 
    end 

    # this is for no subdomain 
    root to: 'pages#homepage' 
end 
+0

'devise_scope'は、deviseパスにルートをマウントする' scope'の開発版です。 'devise_scope:users'は'/users'にパスをマウントします。 – max

+0

お返事ありがとうございます。私たちは 'devise_scope'の内部からコントローラを作成するようにしかルーティングできません。私は 'unauthenticated'を使ってルートにルーティングしようとしましたが、それでも同じエラーメッセージが表示されています。ルートを「devise/sessions#new」と指定しながら、デフォルトルートを 'devise_scope'してデフォルトを上書きする方法はありますか? –

関連する問題