Использовать макрос ресурсов без: id в Phoenix Router - PullRequest
0 голосов
/ 26 ноября 2018

По умолчанию макрос resources добавляет /:id в конце маршрутов для действий на отдельных ресурсах.

Однако у меня есть случай, когда пользователь всегда должен войти в систему для выполнения действийна себя.Я предпочитаю получать :current_user из conn.assigns, не передавая / не показывая какой-либо параметр в URL.Я знаю, что всегда могу выписать маршруты по одному.Мне просто интересно, есть ли способ позволить resources генерировать такие пути.

1 Ответ

0 голосов
/ 26 ноября 2018

Это можно сделать с помощью опции :singleton:

Когда необходимо искать ресурс без ссылки на идентификатор, потому чтоон содержит только одну запись в данном контексте, опция :singleton может использоваться для генерации набора маршрутов, специфичных для такого отдельного ресурса.


Пример использования:

resources "/user", UserController, singleton: true

Это сгенерирует следующие маршруты:

  • GET / пользователь
  • GET / пользователь / новый
  • POST / пользователь
  • GET / пользователь / редактирование
  • PATCH / пользователь
  • PUT / пользователь
  • DELETE / пользователь

Вы можете комбинировать его с опциями :only или :except, чтобы включить / исключить определенные маршруты

...