0
我在模型上進行搜索,例如:如何按照每個對象在RoR中的連接表中出現的次數排序數組?
search_results = Note.description_like("test string")
所以我有筆記的數組。我想按照note_id出現在我擁有的連接表note_categories中的頻率對它們進行排序。我怎樣才能做到這一點?
我在模型上進行搜索,例如:如何按照每個對象在RoR中的連接表中出現的次數排序數組?
search_results = Note.description_like("test string")
所以我有筆記的數組。我想按照note_id出現在我擁有的連接表note_categories中的頻率對它們進行排序。我怎樣才能做到這一點?
試試這個(Rails的2.X語法):
Note.all(
:select => "notes.*, COUNT(notes.id) AS note_count",
:joins => :note_categories,
:conditions => ["notes.description LIKE ?", "test string%"],
:group => :id,
:order => :note_count
)
編輯1 我的回答不使用由seach_logic
創建的範圍,它會工作。
如果使用SearchLogic,查詢可以寫成:
Note.description_like("test string").all(
:select => "notes.*, COUNT(notes.id) AS note_count",
:joins => :note_categories,
:group => :id,
:order => :note_count
)
謝謝您的回答。只是想檢查,我認爲我的代碼中的description_like部分使用了searchlogic插件(http://github.com/binarylogic/searchlogic),您的代碼是否也會這樣做?再次感謝! – ben 2010-08-23 01:42:35
更新了我的答案,看看。 – 2010-08-23 03:52:11