35 votes

Concevoir connecté en root route rails 3

Heyya les gars. Alors j'ai pensé à ce coolio idée, si vous êtes connecté, puis vous obtenez une sorte de tableau de bord, sinon, vous obtenez une information/login/s'inscrire à la page.. Donc comment dois-je faire..

J'ai surtout veut le faire dans les Itinéraires = pas quelque chose comme


def index
  if current_user.present?
    render :action => 'logged_in'
  else
    render :action => 'logged_out'
  end
end

merci à l'avance!

/ Oluf Nielsen

80voto

Joe Lalgee Points 872

Pensez que vous avez été la recherche de ce:

authenticated :user do
  root :to => "dashboard#show"
end

root :to => "devise/sessions#new"

Remarque: il s'authentifier*d*

25voto

Shayne Sweeney Points 458

Moi aussi je voulais dans mon application, voici ce que j'ai trouvé.

MyCoolioApp::Application.routes.draw do
  root :to => 'users#dashboard', :constraints => lambda {|r| r.env["warden"].authenticate? }
  root :to => 'welcome#index'

  get "/" => 'users#dashboard', :as => "user_root"

  # ..
end

Dans Rails 3, vous pouvez utiliser la Demande Basée sur les Contraintes de manière dynamique la carte de votre root route des. La solution ci-dessus fonctionne pour le dispositif d'authentification gem, mais peut être modifié pour prendre en charge votre propre mise en œuvre.

Ci-dessus, root_path ou / route pour un WelcomeController#index d'action pour non-authentifié demandes. Lorsqu'un utilisateur est enregistré dans le même root_path à UsersController#dashboard.

Espérons que cette aide.

21voto

zezim Points 311

J'ai le même problème et je l'ai résolu avec ceci:

authenticated :user do
  root :to => "wathever#index"
end
unauthenticated :user do
  devise_scope :user do 
    get "/" => "devise/sessions#new"
  end
end

Espérons que cela aide.

4voto

BaroqueBobcat Points 6788

êtes-vous à l'aide de concevoir avant de filtres?

class FooController < ActionController::Base
  before_filter :authenticate_user!
...

Pourquoi ne pas essayer de modifier le nom par défaut des vues de sorte qu'ils ont l'info/connexion/inscription infos que vous voulez.

0voto

Joost Schuur Points 3291

Voici ce que j'utilise dans mon application fichier de mise en page à droite maintenant. N'avez pas cassé, il en partiels encore:

            <% if user_signed_in? %>
                <a href="http://stackoverflow.com/profile"><%= current_user.email %></a> | 
                <%= link_to "Logout", destroy_user_session_path %>
            <% else %>
                <%= link_to "Login", new_user_session_path %> |
                <%= link_to "Register", new_user_registration_path %>
            <% end %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X