Rails & Cells:如何在Cell视图中正确渲染数组
在Cells视图中正确渲染数组格式的解决办法
嘿,我之前也碰到过一模一样的问题!Cells渲染数组的默认逻辑和普通ERB不一样——在Cell外部数组会输出["js", "ruby"]这种可读格式,但到了Cell视图里就直接把元素拼接成了jsruby这种字符串。下面给你几个实用的解决思路:
方法1:用inspect直接输出数组的标准格式
这是最快速的解决方案,让数组输出它的Ruby检查格式,和Cell外的表现一致:
<%= skill_options.inspect %>
渲染后就能得到你想要的["js", "ruby"]结果。
方法2:自定义遍历渲染(适合需要美化展示的场景)
如果不想用纯Ruby数组格式,而是要做更友好的UI展示,可以手动遍历数组元素:
<ul class="skill-list"> <% skill_options.each do |skill| %> <li><%= skill %></li> <% end %> </ul>
这样就能把数组转换成有序/无序列表,比纯字符串拼接的体验好很多。
为什么会有这个差异?
普通ERB视图里,Rails会自动对输出的对象调用inspect来生成可读字符串;但Cells的视图上下文处理数组时,默认会直接迭代输出每个元素的内容,相当于隐式执行了skill_options.join,所以就变成了元素拼接的纯字符串。
内容的提问来源于stack exchange,提问作者Pavel
相关产品推荐
相关产品推荐

