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

Rails I18n:实现显示前检查字段是否存在的方法

解决方案

要避免渲染空的description_html内容,只需要在输出前加上条件判断即可,确保只有当该字段存在且非空时才渲染对应的标签。

修改后的ERB代码如下:

<% t('.items').each do |item| %>
  <p><%= item[:description] %></p>
  <% # 只有当description_html存在且不为空时才渲染 %>
  <% if item[:description_html].present? %>
    <p><%= item[:description_html].html_safe %></p>
  <% end %>
<% end %>

关键说明:

  • present?方法会同时检查值是否为nil(即YAML中未定义该字段)或者空字符串,覆盖了两种可能的“无内容”场景;
  • 因为description_html包含HTML标签,记得调用html_safe方法,这样Rails才会解析标签而不是把它们当成纯文本输出。

如果你的场景中只需要判断字段是否存在(哪怕字段值是空字符串也想渲染),可以把条件换成item.key?(:description_html),但present?的适用性更广,更符合“避免空内容”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:18:01