2013-10-14 41 views
0

我有兩個模型,文章和評論,我試圖顯示最近的5條評論標題。顯示屬於帖子的最後5條評論

<%= Post.limit(5).order('created_at desc') %> 

給我最後5個帖子。

我如何得到最後5條評論,只是標題?

回答

1

爲了得到剛剛過去的5個評論,你可以使用這個

Comment.limit(5).order('created_at desc').select(:title) 

顯示了文章的標題,它看起來像要檢索後的最後5個評論。

你可以這樣說:

<% Post.limit(5).order('created_at desc').each do |post| %> 
    <% post.comments.select(:title).order('created_at desc').limit(5).each do |comment| %> 
    <%= comment.title %> 
    <% end %> 
<% end %> 

有兩個問題:

注意解決這個問題:我無法測試這些,但我想他們將工作或將要,至少,給你的想法。

+0

這工作,謝謝你的答案! – user2759575

1

我認爲你正在尋找:

Comment.select(:title).order('created_at desc').limit(5).map {|c| c.title} 

這會給你的標題的數組創建的最後5個評論。如果您需要其他屬性,請將其添加到名爲(Comment.select([:title, :owner]))的選擇方法中,或者刪除選擇和獲取所有評論屬性。

+0

我現在認識到,返回所有帖子的最後5條評論。任何想法如何限制它只有一個職位? – user2759575

+0

@ user2759575是的,嘗試'@ post.comments.select(:title).order('created_at desc')。limit(5).map {| c | c.title}'。另外,正如HungryCoder所說,您應該可以在您的控制器中加載此視圖,而不是視圖並將其分配給實例變量。它只是將查詢和顯示問題分開一點。 – jvperrin

+0

感謝您的建議。新的鐵路和仍在學習! :) – user2759575