Elixir Phoenix:模板中字符串中的插值函数

Elixir Phoenix:模板中字符串中的插值函数,elixir,phoenix-framework,Elixir,Phoenix Framework,我想在一组面包屑中显示一个链接(使用Slime进行标记) 这就很好了。但我想在上下文中显示它,并提供其他链接 # by concatenation = link("Projects > ", to: project_path(@conn, :index)) <> link(@project.name, to: project_path(@conn, :show, @project)) # or by interpolation #{link("Projects", to: p

我想在一组面包屑中显示一个链接(使用Slime进行标记)

这就很好了。但我想在上下文中显示它,并提供其他链接

# by concatenation
= link("Projects > ", to: project_path(@conn, :index)) <> link(@project.name, to: project_path(@conn, :show, @project))

# or by interpolation
#{link("Projects", to: project_path(@conn, :index))} > #{link(@project.name, to: project_path(@conn, :show, @project))}
通过串联 =link(“Projects>”,to:project_path(@conn,:index))link(@project.name,to:project_path(@conn,:show,@project)) #或者通过插值 #{link(“Projects”,to:project_path(@conn,:index))}>{link(@project.name,to:project_path(@conn,:show,@project))} 所需的输出如下所示:

项目名称

然而,这两种技术都不起作用。如何将此链接添加到此文本


如果您可以解释为什么不能像上面那样工作,那么您可以获得额外的积分。

只要将其设置为多行:

= link("Projects > ", to: project_path(@conn, :index))
= link(@project.name, to: project_path(@conn, :show, @project))
您仍然可以将其放在一行中:

link
函数返回如下元组:
{:safe,“link\u string”}
。如果希望将链接用作字符串,则需要通过Kernel.elem(tuple,1)从元组中选取第二个元素。

您还需要使用
raw()
呈现任何html标记

这项工作:

= raw "#{Kernel.elem(link("Projects > ", to: project_path(@conn, :index)), 1)} #{Kernel.elem(link(@project.name, to: project_path(@conn, :show, @project)), 1)}"

你为什么不把它们排成不同的行呢<代码>=link(…)\n |>\n=link(…)?我认为插值提供了更多的控制和清晰度,但我明白你的意思
= raw "#{Kernel.elem(link("Projects > ", to: project_path(@conn, :index)), 1)} #{Kernel.elem(link(@project.name, to: project_path(@conn, :show, @project)), 1)}"