You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HAML语法问题:如何让a标签嵌套在p标签内部

解决HAML中a标签嵌套在p标签内的问题

嘿,我明白你为啥会遇到这个情况啦!你原来的HAML写法里,第二个=被HAML当成了新的独立元素(因为没做好内容归属的关联),所以才会把a标签渲染到p标签外面。咱们调整下写法,就能实现你想要的嵌套效果了。

方案一:字符串拼接法

直接把link_to的结果和前面的文本拼接在一起就行——Rails的link_to返回的是安全的HTML字符串,拼接后依然会被正确渲染在p标签内:

%p.date= "Submitted #{time_ago_in_words(@post.created_at)} ago | " + link_to("Edit Post", edit_post_path(@post))

方案二:HAML块语法(更易读)

用HAML的缩进块明确内容归属,把p标签的内容放在缩进的块里,这样link_to就会被识别为p标签的子内容:

%p.date
  Submitted #{time_ago_in_words(@post.created_at)} ago |
  = link_to "Edit Post", edit_post_path(@post)

这里要注意第二行和第三行必须缩进(通常用两个空格),HAML会自动把这些内容合并到p标签内部,生成你期望的嵌套结构。

这两种写法最终都会输出你想要的结果:

<p class="date">Submitted 10 minutes ago | <a href="/posts/9/edit">Edit Post</a></p>

内容的提问来源于stack exchange,提问作者Marko Avlijaš

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:07:02