2017-09-10 1 views
0

Je tente d'acheminer la racine pour concevoir un chemin de connexion sous une contrainte subdomain.Routage de routage à l'aide d'une contrainte de conception et de sous-domaine

Mon config/routes.rb ressemble à quelque chose comme ça

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 

J'obtiens l'erreur Could not find devise mapping for path "/".

Des suggestions quant à la façon dont je route vers chemin racine dans un sous-domaine avec la portée DEVISE?

Merci

+0

Est-ce que cela fonctionne comme ça: 'racine: 'concevoir/sessions # nouvelles', les contraintes: {sous-domaine: 'admin'} ' –

+1

Merci d'avoir suivi. Je devrais toujours le mettre dans le bloc 'devise_scope', remplaçant ainsi les routes par défaut. Pour ce faire, je l'ai placé dans un bloc 'constraint'. D'une manière ou d'une autre, je ne suis toujours pas capable d'accéder à des contrôleurs «concevoir» à partir de là. –

Répondre

1

Pour ajouter une authentification contraindre à une route utiliser la méthode concevoir authenticated:

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

'concevoir_scope' est vraiment juste une version de' scope' qui monte des routes dans le chemin du legs. 'concevoir_scope: users' monterait des chemins dans'/users'. – max

+0

Merci pour la réponse. Nous pouvons seulement acheminer pour concevoir des contrôleurs depuis l'intérieur d'un 'devise_modèle '. J'ai essayé d'utiliser 'unauthenticated' pour router vers la racine mais il montre toujours le même message d'erreur. Existe-t-il un moyen pour que je puisse '' imagine_scope' des routes et remplacer les valeurs par défaut, tout en spécifiant 'root to: 'imagine/sessions # new''? –