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

Rails ERB模板三元运算符报错,需生成Mark as Read链接

解决ERB模板三元运算符语法错误问题

问题原因

原代码触发语法错误是因为Ruby的运算符优先级问题:三元运算符?:的优先级高于方法调用,导致Ruby无法正确解析link_to的调用逻辑,把字符串参数错误地归到三元运算的分支里。

修复方案

方案1:用括号明确表达式优先级

给link_to调用加上括号,确保Ruby正确识别三元运算的两个分支:

<p>Status:
     <%= notification.read? ? "Read" : (link_to "Mark as Read", "/") %>
</p>

方案2:拆分为多行if-else逻辑(可读性更强)

如果觉得三元运算符可读性差,也可以改成更直观的条件分支写法,完全避免优先级问题:

<p>Status:
  <% if notification.read? %>
    Read
  <% else %>
    <%= link_to "Mark as Read", "/" %>
  <% end %>
</p>

两种方案都能实现需求:当notification.read?为true时显示“Read”,为false时显示可点击的“Mark as Read”链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:20:37