Как связать с контроллером параметры с помощью инфраструктуры Phoenix - PullRequest
0 голосов
/ 07 апреля 2020

У меня следующий маршрут в Фениксе.

page_path  GET /next/:id   SampleServerWeb.SampleController :next

Я хотел бы отправить идентификатор параметра с предыдущей страницы. Я понятия не имею, как написать тег помощника по ссылкам.

Я пытался следовать, однако он не работает.

    <%= link "NEXT", to: page_path(@conn, :next, id: 40) %>

Пожалуйста, дайте мне совет. Спасибо.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Пути маршрутизатора

Phoenix генерирует модуль помощника пути для каждого Phoenix.Router.

Пути могут быть созданы с помощью Помощники маршрутизатора .

Доступность помощника в представлениях

Если вы используете mix phx.new для создания проекта, YourApp.Router.Helpers будет импортирован как Routes во все ваши представления. (https://github.com/phoenixframework/phoenix/blob/2c91dc9/installer/templates/phx_single/lib/app_name_web.ex#L88)

Доступные функции Path / URL

Команда mix phx.routes показывает все доступные на данный момент маршруты для вашего маршрутизатора.

Найти Из параметров, необходимых для создания пути / URL, детали могут быть показаны в iex.

$ iex -S mix
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe]

Interactive Elixir (1.10.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> h YourApp.Router.example_path
                 def example_path(conn_or_endpoint, action)                 


             def example_path(conn_or_endpoint, action, params)             


           def example_path(conn_or_endpoint, action, id, params)           

iex(2)> 

TODO в вашем случае

<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %> or
<%= link "NEXT", to: Routes.page_path(@conn, :next, 40) %>
0 голосов
/ 07 апреля 2020

Наконец-то это сработало !!

<%= link "NEXT", to: Routes.page_path(@conn, :next, id: 40) %>

Я должен был поставить Routes.

...