gpt4 book ai didi

ruby-on-rails - rails : How to render a layout around a collection?

转载 作者:行者123 更新时间:2023-12-04 01:33:03 25 4
gpt4 key购买 nike

rails 支架 :layout渲染集合部分时的选项,但布局适用于列表中的每个元素。

有没有办法围绕整个集合添加布局?

细节

假设我有一个集合 @promoted_stories .我想围绕呈现的集合呈现一些 HTML,但前提是 @promoted_stories不是空的。我想要的可以通过这种方式实现:

<% if @prometed_stories.present? %>
<div class="promoted-stories>
<%= render @promoted_stories %>
</div>
<% end %>

我可以做同样的事情并避免 if ?我是无逻辑布局的粉丝,所以如果可能的话,我想避免在我的 View 中出现尽可能多的分支。如果这样的事情是可能的,我更愿意:
# View:
<%= render collection: @promoted_stories, collection_layout: 'promoted_stories' %>

# _promoted_stories.html.erb
<div class="promoted-stories">
<%= yield %>
</div>

最佳答案

虽然没有想象中的解决方案那么优雅,但这应该会达到类似的结果:

# Helper
def render_collection_template(template, collection)
render template: "layouts/#{template}", locals: { collection: collection } if collection.present?
end

# View
<%= render_collection_template 'promoted_stories', @promoted_stories %>

# Template
<div class="promoted-stories">
<%= render collection %>
</div>

现在有一个 pull request用于实现集合渲染的集合布局的 rails。

关于ruby-on-rails - rails : How to render a layout around a collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com