我必須解決問題而不降低性能。Ruby:最有效的方法來隨機化陣列中某些元素的位置
我在我的社論CMS中整合了一個「贊助」內容系統。贊助內容的內容是,在某些日子裏,在我的主頁中獲得隨機位置。
我有我的內容類,有些內容有一個標誌「贊助」。
在我的HomeController中,我調用了Cover的內容。
@content = Content.for_cover
結果是一個由20個對象組成的數組,其中一些對象是被贊助的。
內容按默認範圍(publication_date DESC)排序,因此在我的主頁中,它們從最近到最早排序,但我需要贊助內容「覆蓋」默認範圍並採取隨機位置。
我試圖找到最佳解決方案:我不想通過大量查詢來降低主頁渲染的性能。
有什麼想法?
更多信息
我添加了過濾器發起的,所以我的查詢返回通過發佈日期以及與贊助前下令所有我的內容(20)一個範圍的方法。
@content = Content.for_cover
返回我是這樣的:
c = [s,s,s,s,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16]
其中S是 「贊助」。
我必須把每一個「s」並將其移動到隨機位置。響應
c = [c1,c2,c3,s,c4,c5,c6,c7,c8,s,c9,c10,s,c11,c12,c13,c14,s,c15,c16]
隨機化的內容項目是否會替換現有的項目,或者只是介於兩者之間以便將其推倒? – mjnissim
我的答案呢?在「建設中」之前:P – mdesantis