URL-адреса панели инструментов в Rails - PullRequest
0 голосов
/ 27 ноября 2010

Когда пользователь входит на веб-сайт, и у него есть определенная страница (например, панель инструментов для его материалов), как он должен отображаться?

Есть сайты, которые имеют example.com/user/, а другиетолько есть example.com/, другие examples.com/user/id.

Какой лучший способ сделать это?Как узнать, что это за пользователь, если вы не передали: id в URL?

Ответы [ 3 ]

1 голос
/ 27 ноября 2010

С точки зрения адреса, который вы используете для панели инструментов - это не имеет значения.Важно то, что вы выбираете что-то, что является последовательным и логичным в контексте вашего сайта.

Например, если ваш сайт - это скорее приложение - а-ля basecamp - и панель мониторинга - это главная страницакоторый пользователь начинает взаимодействовать с приложением, тогда вы, вероятно, хотите что-то в соответствии с example.com/, example.com/home или даже example.com/dashboard

Если, с другой стороны, высоздавая что-то более похожее на сайт электронной коммерции и под страницей панели мониторинга вы подразумеваете экран со ссылками на историю заказов, сведения о профиле и т. д., вам может понадобиться что-то более похожее на xxx.com/myaccount

Как яскажем, важно то, что это имеет смысл в контексте остальной части вашего сайта

С точки зрения знания того, какой пользователь является каким, независимо от того, находится ли идентификатор в URL, детали зависят от того, как выобрабатывать аутентификацию в вашем приложении.Если у вас ничего не настроено, я настоятельно рекомендую взглянуть на Devise .Он будет делать практически все, что вам нужно для быстрой и простой настройки аутентификации в rails 3. Он также хорошо работает с CanCan , который хорош для определения того, кто может делать то, что в вашем приложении

1 голос
/ 27 ноября 2010

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

config / rout.rb

match '/dashboard' => 'users#dashboard', :as => 'dashboard'

рейк-маршруты

dashboard        /dashboard(.:format)                {:action=>"dashboard", :controller=>"users"}

В контроллерах у меня есть функция #current_user, которая возвращает текущего вошедшего в систему пользователя на основе информации о сеансе.Таким образом, панель мониторинга возвращает только информацию для current_user, но в моем примере пользователь никогда не сможет получить доступ к панели мониторинга другого пользователя, как это обычно бывает (хотя некоторые функции администратора требуют такой возможности).

0 голосов
/ 27 ноября 2010

Я думаю, что RESTful это будет .com/users/:id/dashboard, если вы не используете ресурсы для маршрутизации своего приложения, тогда вы можете использовать то, что вам нравится больше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...