Devise logged in root route rails 3

前端 未结 5 1226
遥遥无期
遥遥无期 2020-12-07 12:28

Heyya guys. So i thought about this coolio idea, if you are logged in then you get some sort of dashboard, else you get an information/login/sign up page..

相关标签:
5条回答
  • 2020-12-07 12:47

    I have the same problem and I solved it with this:

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

    Hope it helps.

    0 讨论(0)
  • 2020-12-07 12:57

    I too wanted this in my app, here's what I came up with.

    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
    

    In Rails 3 you can use Request Based Contraints to dynamically map your root route. The solution above works for the Devise authentication gem but can be modified to support your own implementation.

    With the above root_path or / will route to a WelcomeController#index action for un-authenticated requests. When a user is logged in the same root_path will route to UsersController#dashboard.

    Hope this helps.

    0 讨论(0)
  • 2020-12-07 13:00

    Think you may have been looking for this:

    authenticated :user do
      root :to => "dashboard#show"
    end
    
    root :to => "devise/sessions#new"
    

    Note: it's authenticate*d*

    0 讨论(0)
  • 2020-12-07 13:10

    Here's what I'm using in my application layout file right now. Haven't broken it out into partials yet:

                <% if user_signed_in? %>
                    <a href="/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 %>
    
    0 讨论(0)
  • 2020-12-07 13:11

    are you using devise's before filters?

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

    Why don't you try altering the default login views so they have the info/login/signup infos you want.

    0 讨论(0)
提交回复
热议问题