Как Twitter получает две разные домашние страницы в зависимости от входа в систему или нет?- Рельсы 3.1

StackOverflow https://stackoverflow.com/questions/7333382

Вопрос

Если вы перейдете на Twitter.com , когда вы не вошли в систему, вы увидите маркетинговую страницу споля входа и регистрации.

Однако, если вы перейдете туда после входа в систему, вы увидите свою ленту активности для своего дескриптора Twitter.

Я знаю, что один из способов сделать это в Rails - это создать код для зарегистрированных пользователей и просто использовать код для маркетингового сайта.Но Твиттер не использует кодовые коды, поэтому мне интересно, как они это делают?

Это простой случай наличия одного корневого маршрута, а затем оператора if, отображающего две разные страницы в зависимости от того, вошел ли пользователь в систему?

Или есть какой-нибудь другой, более интересный трюк с маршрутизацией, который я могу использовать для этого?

Если это просто общий код кода, это кажется немного взломанным ... нет?

Спасибо.

Это было полезно?

Другие советы

По умолчанию методы контроллера, обрабатывающие определенные маршруты, отображают представление с соответствующим именем (маршрут home / index ссылается на домашний контроллер и действие index, которое, в свою очередь, отображает представление index.html.erb внутри папки app / views / home.).

Однако внутри метода контроллера, который обрабатывает корневой запрос, вы можете просто отобразить другое представление в зависимости от того, вошел ли пользователь в систему или нет.

Вероятно, у вас будет что-то вроде этого:

родовое слово

конец

В этом случае "logged_in_user" будет другим представлением (шаблоном или файлом html.erb) из папки app / views / home.

Дополнительную информацию можно найти здесь: руководство по рендерингу Rails

это может быть своего рода перенаправление для незарегистрированных пользователей на другой контроллер, проверка сеанса пользователя может быть выполнена в before_filter

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top