2015-10-11 16 views
1

我有Ruby On Rails應用程序,並且我在其中使用了Post模型(使用scaffolding生成)。Rails PostgreSQL獲取保存對象的最重複的屬性並將其打印到屏幕

當人們創建的Post新的對象實例(有一個域名爲name,並自動創建另一個名爲id)這樣可以節省這兩個領域:title,並創建我的數據庫中是唯一id(我使用gem 'pg'數據庫)的那一行。

我該如何達到以下結果:「用戶在我的應用程序中創建了很多Posts,我想將最重複的帖子標題打印爲一個標題(例如,如果有40個標題爲」暴力蘇荷「的帖子和以我的觀點來看,20個標題爲「DZ Deathrays」的帖子會返回'暴力Soho'作爲預期結果)。「?

回答

2

我會做這樣的事情:

Post.group(:title).order('COUNT(id) DESC').limit(1).pluck(:title).first 

或者:

Post.group(:title).order('COUNT(id) DESC').first.title 
+0

這爲我工作,謝謝你,spickermann!但是,正如我注意到它按字母順序選擇? –

+0

是的,我怎樣才能格式化輸出?目前它以這種模式輸出:[「Your_most_duplicated_post_title_goes_here」]。 我想要的是這樣輸出:Your_most_duplicated_post_title_goes_here(沒有'[',']'和'''符號) –

+0

@PāvelsSanatovs:我更新了我的答案。 – spickermann