6

我有一个简单的给你们。

我想要一个特色内容部分,其中当前文章被排除在外

所以这适用于使用中间人博客delete_if

<% blog(content).articles.delete_if{|item| item == current_article}.each do |article| %>
  <%= article_content %>
<% end %>

但是我正在使用中间人代理,所以我无法访问该current_article方法......

我有一个 YAML 结构,其中包含以下模拟数据(以及其他数据),其文件夹设置如下:data > site > caseStudy > RANDOM-ID423536.yaml(由 CMS 生成)

在此处输入图像描述

在每个yaml文件中,您会发现以下内容:

:id: 2k1YccJrQsKE2siSO6o6ac
:title: Heyplace

我的config.rb长相是这样的

data.site.caseStudy.each do | id, this |
  proxy "/cases/#{this.slug}/index.html", "/cases/cases-template.html", :locals => { this: this }, :ignore => true
end

我的模板文件包含以下内容

<%= partial(:'partials/footer', :locals => {:content => data.site.caseStudy, :title => 'See more projects'}) %>

我获取内容的循环

<% content.each do |id, this| %>
  <%= partial "partials/tile" %>
<% end %>

所以我想我的问题是,在这种情况下如何使用才能delete_if不显示当前文章?

我尝试过类似的东西,但无济于事:

<% content.delete_if{|e| e.title == content.title}.each do |id, this| %>
  <%= partial "partials/tile" %>
<% end %>

任何帮助表示赞赏!谢谢!

解决了,最后做了

<% content.reject{ | id, item| item == this }.each do |id, this| %>
<%= partial "partials/tile", :locals => { :this => this, :dir => "/#{this.content_type_id.downcase}/", :secondary => 'View' } %>
<% end %>

由@David Litvak 提供

4

1 回答 1

4

我是 contentful_middleman 的维护者。看起来您可以将 .this作为本地发送到部分,然后遍历您的内容并确保排除与this.

于 2017-04-19T23:31:37.730 回答