В феникс-каркасе для Эликсира, что делает as: :pages
в get "/pages/:page", PageController, :show, as: :pages
? А во-вторых, что такое as:
, макрос? Карта?В Elixir/Phoenix что делает `as:: pages` do?
1
A
ответ
4
Опция as:
позволяет настраивать функции вспомогательного имени именованного маршрутизатора, которые мы генерируем, чтобы воссоздать определенный маршрут. то есть из документов:
Указанный помощник также можно настроить с помощью опции :as
. Учитывая маршрут:
get "/pages/:page", PageController, :show, as: :special_page
названный помощником будет:
MyApp.Router.Helpers.special_page_path(:show, "hello")
"/pages/hello"
as:
в этом случае является возможность маршрутизатора макроса, а не сам макрос.
В каких документах я могу найти это? – stoft
Глядя на документы, которые я воспринимаю, помощники используются для доступа к маршруту из вашего кода без прохождения через Маршрутизатор. Это верно? Например. если я хочу перенаправить на другой путь? – stoft
@stoft помощник - это функция, которая генерирует путь для вас. Поэтому вместо путей жесткой кодировки вы можете использовать помощник, который будет генерировать URL-адрес, интерполируя аргументы, а также гарантируя, что он действительно существует. Например, предположим, что вы переименуете «/ pages /: page» на «/ my/pages /: page». Если вы жестко настроили URL-адреса, у вас теперь были бы неработающие ссылки в вашем приложении. Используя помощник, URL-адреса будут корректными после перекомпиляции кода. В случае удаления URL-адреса вы получите ошибку компиляции. –