2011-06-10 23 views
0

例如,說我有類似BlogCategory這與博文一HABTM選擇,我想只選擇實際上已經在博文使用named_scope根據計數值

named_scope :published, { 
    :include => :blog_posts, 
    :select  => 'blog_categories.*, count(blog_posts.id) as post_count', 
    :group  => 'blog_categories.id having post_count > 0', 
    :conditions => 'blog_posts.published = 1', 
} 
使用BlogCategories

問題我遇到的是:選擇這部分似乎被完全忽略的軌道,所以計數字段不會被放入查詢,我最終與錯誤「未知的列'post_count'在「有條款」

+0

什麼版本的rails? – natedavisolds 2011-06-10 20:30:46

+0

2.3.11 makethismorethan15chars – hoff2 2011-06-10 20:32:54

+0

我不知道你爲什麼沒有工作。但是,作爲替代,您可以在belongs_to聲明中使用counter_cache,並避免需要進行計數。請參閱http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to – Yardboy 2011-06-10 21:07:10

回答

1

我不知道爲什麼它不承認post_count,但它應該與:

:group  => 'blog_categories.id having count(blog_posts.id) > 0', 
+0

良好的調用,或許可以完全消除:select。仍然奇怪爲什麼它被忽略,雖然 – hoff2 2011-06-10 20:44:08

+0

拍攝,然後我在結果中獲得同一個BlogCategory的倍數。不是我想要的。 – hoff2 2011-06-10 20:49:15

+0

哎呀,沒關係。我改變了一些東西,忘了它。這可能會完成這項工作,讓我再試一次。 – hoff2 2011-06-10 20:50:44