2013-04-24 8 views
6

मैं साइडबार में अगले पांच सबसे हालिया पोस्टों के साथ शो व्यू में सबसे हालिया पोस्ट दिखाना चाहता हूं।रेल: सबसे हालिया पोस्ट को छोड़कर 5 सबसे हालिया पोस्ट दिखाएं

वर्तमान में, मैं सबसे हालिया पोस्ट दिखाता हूं, लेकिन साइडबार में अगले 4 सबसे हालिया पोस्टों के साथ एक ही पोस्ट शामिल है।

नियंत्रक:

def show 
    @post = Post.find(params[:id]) 
    @posts = Post.includes(:comments).order("created_at DESC").limit(5) 
end 

दृश्य:

<div class="related-articles"> 
    <h2 class="headline">Related Articles</h2> 
    <% @posts.each do |post| %> 
     <div class="floatLeft"><%= link_to (image_tag post.image.url(:thumb)), post_path(post) %></div> 
     <h2 class="headline smaller-font"><%= link_to post.title, post %></h2> 
     <div class="image-remove"><%= raw truncate_html(post.body, length: 190) %> 
     <%= link_to "read more", post %></p></div> 
     <hr> 

<% end %> 

</div><!--related articles box--> 

धन्यवाद बहुत बहुत।

उत्तर

11

ऑफसेट आप क्या चाहते हैं की कोशिश कर रहा है:

@posts = Post.includes(:comments).order("created_at desc").limit(4).offset(1) 

अगर आप 2-6 चाहते तो सीमा का उपयोग पदों 2-5 वापस आ जाएगी, (5)

+0

धन्यवाद। यह खूबसूरती से काम किया। – user2299459

+1

स्लाइस से बेहतर और अधिक स्पष्ट !, मैंने कुछ सीखा है। – Fred

0

क्योंकि वे सबसे पुराना करने के लिए नवीनतम आदेश दिया जाता है,

@posts = Post.includes(:comments).order("created_at DESC").limit(6) 
@posts.slice!(0) 
संबंधित मुद्दे