簡體   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