rails delete_if 使用哈希忽略当前文章(中间人)
rails delete_if using hashes to ignore current article (Middleman)
我为你们准备了一个简单的。
我想要一个特色内容部分,其中排除了当前文章
所以这可以使用 Middleman Blog 和 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 提供
我是 contentful_middleman 的维护者。看起来您可以将 this
作为本地发送到部分,然后遍历您的内容并确保排除与 this
.
的 ID 匹配的内容
我为你们准备了一个简单的。
我想要一个特色内容部分,其中排除了当前文章
所以这可以使用 Middleman Blog 和 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 提供
我是 contentful_middleman 的维护者。看起来您可以将 this
作为本地发送到部分,然后遍历您的内容并确保排除与 this
.