Я нахожу, что полагаюсь на свой вспомогательный метод current_user
, который часто используется в контроллерах. Однако чем больше я использую его, тем больше я думаю, что, вероятно, этого не должно быть. Это потому, что мои маршруты не такие RESTful, как они должны быть? Должен ли я действительно искать User.find(params[:user_id])
для любого запроса, где я нахожусь с помощью current_user (особенно в контексте когда-либо открывающего API)?Рельсы, когда использовать current_user в контроллере
ответ
REST - это путь к маршрутам, то есть как пути и параметры работают вместе, чтобы определить, какое действие контроллера обрабатывает запрос и т. Д. Это не имеет никакого отношения к current_user
. current_user
ищет в вашей сессии (который в конечном счете использует куки на компьютере клиента), чтобы увидеть, кто в данный момент вошли в систему.
Вы могли бы использовать User.find(params[:user_id])
в ситуации, когда пользователь сайта хочет сделать что-то с этим (которая может быть их собственной, но, вероятно, нет). это не имеет никакого отношения к тому, кто в настоящее время зарегистрирован на вашем сайте.
EDIT: вы указываете API в конце. Как правило, если API вообще что-то делает с концепцией «current_user», то текущий пользователь будет лицом, у которого есть , прошедшим проверку подлинности через элементы управления доступом API, какими бы они ни были, подобно концепции входа в систему веб-сайт, за исключением того, что, как правило, с API, у вас нет концепции входа в систему: каждый запрос API обычно аутентифицируется сам, если вообще требуется аутентификация.
Возможно, вы, вероятно, правильно использовали current_user
столько, сколько вы. Вы не хотите передавать идентификатор пользователя с помощью параметров и полагаться на это по соображениям безопасности.
Не видя никакого кода, я предполагаю, что вы понимаете MVC настолько, что модели должны быть толстыми, а контроллеры должны быть тощими. Поэтому, используя current_user
с разработкой (я предполагаю), часто в контроллерах необходимо получить текущую информацию пользователя.
- 1. Рельсы ассоциаций для CURRENT_USER
- 2. Как использовать параметры в контроллере рельсы
- 3. Доступ к переменной current_user в другом контроллере
- 4. Проверить объект принадлежит current_user в контроллере (has_and_belongs_to_many)
- 5. Access devise current_user variable в контроллере rails
- 6. Рельсы в другом контроллере
- 7. rspec не работает, когда код «current_user» написан на контроллере
- 8. Рельсы. Установите часовой пояс по умолчанию, когда current_user загружен
- 9. Почему current_user вызывается для рендера в контроллере?
- 10. Current_user в контроллере для Rails 4
- 11. Извлеките рельсы/создайте current_user из Backbone
- 12. изменение параметров в контроллере рельсы
- 13. контроллер Force использовать CURRENT_USER насмешливо
- 14. рельсы ошибка маршрута, когда включают в себя модуль в контроллере
- 15. Неопределенное локальная переменная или метод «current_user» (рельсы)
- 16. Помощники в контроллере - Рельсы 3
- 17. Рельсы: используйте перезагрузку! в контроллере
- 18. Добавить CURRENT_USER к вложенной модели в создание и обновление - Рельсы
- 19. Как использовать current_user в model_form
- 20. Использование CURRENT_USER и других DEViSE хелперов в консоли рельсы
- 21. Как рельсы направляются на страницу, когда в контроллере нет действий
- 22. рельсы разрабатываются с использованием current_user и соответствующих маршрутов: id
- 23. Devise current_user найден в контроллере, но отсутствует в другом
- 24. current_user возвращает TrueClass вместо пользователя в контроллере с помощью Devise
- 25. Devise - не удается получить current_user в контроллере приложений
- 26. Рельсы и URL-параметры в контроллере
- 27. Рельсы, используйте содержимое файла в контроллере
- 28. Когда упомянуть AUTHID, как CURRENT_USER
- 29. Как получить доступ к переменной current_user в контроллере или модели?
- 30. Rails Проблемы с дизайном доступа к current_user в контроллере