如何在 link 助手中插入赋值?

How can I interpolate an assign within a link helper?

我有以下路线和控制器操作。

 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

目标是在我的模板中的这个 link 助手中插入 @position 赋值。

    <%= for name <- @names do %>
        <li><%= link "#{name} the ", to: Routes.page_path(@conn, :about) %></li>
    <% end %>
</ul>

因此,给定 URL“/info/jose/engineer”。

生成的 link 文本应该是:

jose 工程师

但是,直接调用赋值或对它们进行插值都不起作用。

<%= link "#{name} the @position ", to: Routes.page_path(@conn, :about) %></li>

<%= link "#{name} the #{position} ", to: Routes.page_path(@conn, :about) %></li>

@ 符号添加到 position 以使其在页面中呈现:

改变这个:

<%= link "#{name} the #{position} ", to: Routes.page_path(@conn, :about) %></li>

为此:

<%= link "#{name} the #{@position} ", to: Routes.page_path(@conn, :about) %></li>