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

渲染Rails富文本Comment.body时出现额外内容的原因及解决方法

问题原因及解决方法

问题原因

核心问题出在comments/index视图的循环语法错误:你使用了<%= comments.each do |comment| %>,其中的<%=会将each方法的返回值(即整个comments集合对象)直接输出到页面中。当集合中的comment包含files附件时,集合的字符串化输出会附带附件的相关信息(比如图片预览或路径),最终表现为渲染结果末尾出现额外内容。

解决方法

将index视图中的循环起始行修改为不带等号的ERB标签:

<div>
    <% comments.each do |comment| %>
        <div>
            <%= turbo_frame_tag dom_id(comment) do %>
                <%= render "comments/show", comment: comment %>
            <% end %>
        </div><br>
    <% end %>
</div>

仅需把<%=改为<%,这样只会执行循环逻辑,不会输出each的返回值,就能移除末尾的额外内容。

内容的提问来源于stack exchange,提问作者salty-ivy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:15:02