[英]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.