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

VS Code「保存时格式化」破坏ERB内JavaScript代码块问题求助

问题描述

在ERB文件中编写以下代码块:

<pre><code>let hide_registration = <%= @user.skip_registration? %>
</code></pre>

保存后代码被错误格式化,ERB标签的尖括号与百分号之间被插入空格,导致代码失效:

<pre><code>let hide_registration = < %= @user.skip_registration ? % >
</code></pre>

当前使用的ERB扩展为Simple Ruby ERB v0.2.1,已关闭「保存时格式化」功能,希望解决该问题以重新启用自动格式化,同时需要定位并移除导致问题的格式化工具。

解决方案

1. 定位问题格式化工具

  • 检查默认格式化器:打开编辑器设置(VS Code按Ctrl+,),搜索「Default Formatter」,查看ERB文件对应的默认格式化器是否为Simple Ruby ERB,或是其他关联工具(如Prettier、Ruby官方格式化器等)。
  • 排查冲突扩展:在扩展面板中搜索ERB相关扩展,除Simple Ruby ERB外,暂时禁用其他可能处理ERB格式化的扩展(如ERB Formatter、Ruby等),保存文件测试是否还会出现格式错误,以此定位问题工具。

2. 修复或替换问题工具

  • 检查扩展配置:找到Simple Ruby ERB扩展,进入其设置页面,查看是否有保留ERB标签紧凑格式的配置项,若有则开启对应设置。
  • 升级或替换扩展:若该扩展无相关配置且未修复此bug,尝试升级到最新版本;若仍无效,替换为更稳定的ERB格式化扩展(如ERB Formatter/Beautifier)。

3. 临时规避方案

若暂时无法更换工具,可在目标代码块前后添加格式化忽略注释,阻止工具修改该部分代码(需确认你的格式化工具支持此注释规则):

<!-- prettier-ignore -->
<pre><code>let hide_registration = <%= @user.skip_registration? %>
</code></pre>
<!-- prettier-ignore-end -->

内容的提问来源于stack exchange,提问作者pkilpo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:12:36