2017-04-19 17 views
6

Tôi đã có một cách dễ dàng cho các bạn.đường ray delete_if sử dụng băm để bỏ qua bài viết hiện tại (Trung gian)

Tôi muốn có một phần nội dung đặc trưng nơi bài viết hiện đang LOẠI TRỪ

Vì vậy, các công trình này sử dụng trung gian Blog với delete_if:

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

Tuy nhiên tôi đang sử dụng trung gian proxy vì vậy tôi don không có quyền truy cập vào phương thức current_article ...

Tôi có cấu trúc YAML chứa dữ liệu giả định sau (trong số những người khác) với thư mục se TUP như: dữ liệu> Trang web> casestudy> RANDOM-ID423536.yaml (tạo bởi một CMS)

enter image description here

Bên trong mỗi yaml tập tin bạn sẽ tìm thấy những thứ như:

:id: 2k1YccJrQsKE2siSO6o6ac 
:title: Heyplace 

My config.rb trông giống như thế này

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

Tệp mẫu của tôi giữ như sau

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

vòng lặp của tôi mà được nội dung

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

Vì vậy, tôi đoán câu hỏi của tôi là, làm thế nào tôi có thể sử dụng delete_if trong trường hợp này để các bài viết isnt hiện tại được hiển thị?

Tôi đã thử những thứ như thế, nhưng không có kết quả:

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

Any help is appreciated! Cảm ơn bạn!

Giải Quyết, đã kết thúc làm

<% 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 %> 

Courtesy of @ David Litvak

Trả lời

4

tôi là duy trì contentful_middleman. Có vẻ như bạn chỉ có thể gửi this một phần như địa phương, sau đó lặp lại thông qua nội dung của bạn và đảm bảo rằng bạn loại trừ một phù hợp với id của this.

+0

Xin chào David, cảm ơn bạn đã dành thời gian giúp đỡ tôi. Bạn có biết làm thế nào tôi sẽ làm điều đó với băm (từ nội dung)? Tôi không phải siêu quen thuộc với cách làm thế. Với mảng dễ dàng hơn một chút –

+0

Loại làm việc sau đây, nhưng bây giờ chúng bị xóa trong bộ đệm. Tôi phải tải lại trang một vài lần để các ô xếp lại xuất hiện. Rất lạ '<% content.reject {| khóa, giá trị | key> = this.id} .sort_by {| index | rand} .each do | id, cái này | %> <% = một phần "partials/tile"%> <% end %> ' –

Các vấn đề liên quan