Rails delete_if使用哈希忽略当前文章(Middleman)重新访问

时间:2017-06-29 09:23:43

标签: ruby-on-rails ruby middleman contentful

我为你们轻松搞定。

我希望有一个精选内容部分,其中隐藏或删除当前文章链接

因此,使用具有delete_if的中间人博客

已经可行了
<% blog(content).articles.delete_if{|item| item == current_article}.each do |article| %>
  <%= article.href %>
<% end %>

但是,我使用的是Middleman proxies,因此我无法访问current_article方法......

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

enter image description here

在每个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, article| %>
  <%= article.href %>
<% end %>

以及:

<% content.reject{|key, value| key >= this.id }.sort_by{ |index| rand }.each do |id, this| %> 
    <%= partial "partials/tile" %> 
<% end %>

(这会一直删除所有数据,直到你重新加载页面,很奇怪!)

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

0 个答案:

没有答案