Подтвердить что ты не робот

Разработать входные корневые маршруты 3

Хейя ребята. Поэтому я подумал об этой идее coolio, если вы вошли в систему, тогда вы получаете какую-то панель инструментов, иначе вы получите информацию/логин/подпись вверх страницы. Так как же я это делаю.

В основном я хочу сделать это в Routes = не что-то вроде


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

заблаговременно!

/Олуф Нильсен

4b9b3361

Ответ 1

Думаю, вы, возможно, искали это:

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

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

Примечание: аутентификация * d *

Ответ 2

Я тоже хотел этого в своем приложении, вот что я придумал.

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

В Rails 3 вы можете использовать Request Based Contraints для динамической карты маршрута root. Вышеприведенное решение работает для самозащиты Devise, но может быть изменено для поддержки вашей собственной реализации.

Если выше root_path или / будет перенаправляться на действие WelcomeController#index для не прошедших проверку подлинности запросов. Когда пользователь регистрируется в одном и том же root_path, он отправится на UsersController#dashboard.

Надеюсь, что это поможет.

Ответ 3

У меня такая же проблема, и я решил это с помощью этого:

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

Надеюсь, что это поможет.

Ответ 4

Вы используете dev перед фильтрами?

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

Почему бы вам не попробовать изменить учетные записи по умолчанию, чтобы они отображали информацию/имя входа/регистрации.

Ответ 5

Вот что я сейчас использую в своем макете приложения. Пока не разбил его на части:

            <% 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 %>