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

如何在Ruby on Rails的Slim模板中条件添加div包裹前两个加载结果

解决方案

问题原因

原有代码仅给索引为0的第一个渲染结果套了loading-top-two容器,第二个结果(索引为1)直接暴露在容器外,不符合需求。同时在Slim循环内动态开启、关闭容器容易出现标签闭合异常,更推荐直接拆分渲染逻辑的实现方式。

固定3个加载项的实现方案

对应你当前写死0~2索引的场景,直接拆分前两个和第三个分开渲染即可:

.loader-results
  .loading-top-two
    - (0..1).each do |i|
      = render "lawyers/search/loading_result", idx: i
  = render "lawyers/search/loading_result", idx: 2

动态数量加载项的RoR便捷实现

如果加载项数量不固定,可以用Ruby内置的each_slice方法或者RoR Active Support提供的分组工具拆分集合,不需要手动维护索引,兼容性和可读性更高:

.loader-results
  / 拆分集合为前2项和剩余项
  - top_two, *rest = @loading_items.each_slice(2).to_a
  .loading-top-two
    - top_two.each do |item|
      = render "lawyers/search/loading_result", item: item
  - rest.flatten.each do |item|
    = render "lawyers/search/loading_result", item: item

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:12:02