ruby-on-rails – Rails:如何在集合周围渲染布局?
发布时间:2020-12-17 02:22:56 所属栏目:百科 来源:网络整理
导读:Rails支持:渲染集合部分时的布局选项,但布局适用于列表中的每个元素. 有没有办法在整个集合中添加布局? 细节 假设我有一个@promoted_stories的集合.我想在渲染集合周围渲染一些HTML,但仅当@promoted_stories不为空时.我想要的就是这样: % if @prometed_st
Rails支持:渲染集合部分时的布局选项,但布局适用于列表中的每个元素.
有没有办法在整个集合中添加布局? 细节 假设我有一个@promoted_stories的集合.我想在渲染集合周围渲染一些HTML,但仅当@promoted_stories不为空时.我想要的就是这样: <% if @prometed_stories.present? %> <div class="promoted-stories> <%= render @promoted_stories %> </div> <% end %> 我可以这样做,并避免如果?我是无逻辑布局的粉丝,所以如果可能的话,我想避免在我的视图中尽可能多的分支.我更喜欢这样的事情是可能的: # 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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |