繁体   English   中英

Rails在单行块内部渲染部分

[英]Rails Render Partial Inside a One Line Block

我有一些信息,我希望通过使用一些部分来简化。 基本上,我想做一些事情

<%= 2.times { |j| render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) } %>

但是,上面的代码不会呈现部分代码。 相反,它返回值“2”两次。 如果我将块写为do-end块,它就像人们期望的那样工作。

<% 2.times do |j| %>
  <%= render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) %>
<% end %>

以我想要的方式产生局部。 但是如果do-end块正常工作,那么单行块也应该能够正常工作,对吧? 它只是关于单行块如何格式化或者是否更深入Rails魔术? 另外,为什么第一个代码示例会两次返回“2”?

这是因为在第一种情况下它只渲染2 2.times方法调用的返回值,即2 您应该只使用第二种表示法。

如果您向map添加调用,则应该能够将其全部保存在一行中。

<%= 2.times.map { |j| render 'item_expanded', item: @social_json_feed[i + j], index: (i + j) } %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM