2010-02-10 53 views
3

使用這個地方作爲許多其他事情的參考後的第一個SO問題..我很緊張。Datamapper(ruby) - (使用博客示例)獲取沒有評論的帖子

的DataMapper ..使用例如博客模型(文章,評論等 - http://datamapper.org/docs/associations.html)我想鍛鍊如何讓沒有任何評論的博客帖子..

因此,像帖子。所有(:評論=> {:評論=>零})

地塊有多少運氣:(

我讀了這裏,對於複雜的報告查詢,最好下降到SQL,但肯定有一種方法做這件事是不是有嗎?

提前致謝。

+0

如果不知道表結構如何看起來很難回答 – Zepplock 2010-02-10 20:58:46

+0

鑑於博客是一個基於Web的應用程序,如果這實際上是一個Rails問題,是不是有問題? (如果是這樣,添加'ruby-on-rails'標籤可能是一個想法。) – Shadowfirebird 2010-02-10 21:19:07

+0

不是一個Rails應用程序,只是在Sinatra中搞了一些。至於表格結構,只有2個表格,文章和評論,文章可以有很多評論。需要的文章還沒有評論... – discoml 2010-02-10 21:26:12

回答

3

如果您的Post模型中沒有計數器緩存(稱爲例如「comments_count」),這將會很慢。但在這裏它是無論如何:

Post.find(:all, :include => :comments).select { |post| post.comments.empty? } 

我建議用計數器緩存解決方案去(但涉及到一些模式重構和遷移過程中更新的計數器一個時間):

Post.all(:conditions => { :comments_count => 0 }) 

後者是多少更高效,特別是在Rails 3中(懶惰查詢的原因)。

+0

此外,如果您只查找帶評論的郵件,則可以使用:Post.find(:all,:include =>:comments).select {| post | post.comments.any?}' – Nilloc 2011-06-03 17:26:08

相關問題