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

ERB使用-%>裁剪尾换行报unexpected ';'语法错误解决方法

ERB 中使用 -%> 裁剪换行触发语法错误的解决方法

学习erb及相关Ruby知识时,按照文档演示使用-%>闭合块来移除标签尾部换行,运行时直接触发语法错误,报错信息如下:

syntax error, unexpected ';' (Syntax Error); @values.each do |val| -; _erbout.<< "\n".freeze

问题复现

  • 触发错误的代码(使用-%>裁剪标签):
<% @values = ['one','two']; puts "Was assigned."%>
<% @values.each do |val| -%>
Some stuff with <%= val %>
<% end -%>
  • 可正常运行的对照代码(使用普通%>闭合标签):
<% @values = ['one','two']; puts "Was assigned."%>
<% @values.each do |val| %>
Some stuff with <%= val %>
<% end %>

解决方法

最初直接通过命令行执行erb test.cfg.erb运行模板文件,查阅erb手册后确认:-%>对应的换行裁剪功能默认处于关闭状态,需要在执行命令时为-T参数传入-来启用该特性,正确执行命令如下:

erb -T - test.cfg.erb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:19:49