我想在一组面包屑中显示一个链接(使用Slime进行标记)。
= link(@project.name, to: project_path(@conn, :show, @project))
这很好。但我想用其他链接在上下文中显示它。
# 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))}
所需的输出看起来像这样:
Projects > 项目名称
但是,这些技术都不起作用。如何将此链接添加到此文本?如果您可以解释为什么这不起作用,那么可以获得奖励。
答案 0 :(得分:2)
让它成为多行:
= link("Projects > ", to: project_path(@conn, :index))
= link(@project.name, to: project_path(@conn, :show, @project))
你仍然可以把它放在一行:
link
函数返回这样的元组:{:safe, "link_string"}
。如果要将链接用作字符串,则需要通过Kernel.elem(元组,1)从元组中选择第二个元素。
See what content_tag (which is used in link()
) returns
此外,您还需要使用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)}"