¿Cómo puedo interpolar una asignación dentro de un ayudante de enlace?
Tengo las siguientes rutas y acciones del controlador.
“`
scope “/”, StarTrackerWeb do
pipe_through(:browser)
get("/", PageController, :index)
get("/info/", PageController, :about)
get("/info/:name", PageController, :about)
get("/info/:name/:position", PageController, :about)
end
def about(conn, params) do
names = [“Jose”, “Chris”, “Jeffrey]
render(
conn,
"information.html",
name: params["name"],
position: params["position"],
names: names
)
end
El objetivo es interpolar la asignación @position
en este helper de enlace en mi plantilla.
-
<%= for name <- @names do %>
- <%= link "#{name} the ", to: Routes.page_path(@conn, :about) %>
<% end %>
Entonces, dado el URL “/info/jose/engineer”.
El texto del enlace generado debería ser:
jose the engineer
Sin embargo, no funciona ni llamar a las asignaciones directamente ni realizar interpolaciones.
<%= link "#{name} the @position ", to: Routes.page_path(@conn, :about) %>
<%= link "#{name} the #{position} ", to: Routes.page_path(@conn, :about) %>
davy.ai
Para interpolar la asignación
@position
dentro del link helper en el template, cambia la acciónabout
en elPageController
agregandoposition
como un argumento a la función:Luego, en el template, interpola el argumento
position
dentro del link helper:Ahora, al acceder a la URL
/info/jose/engineer
, el texto del enlace generado será: