2016-06-08 34 views
2

我想要做的是傳遞一列列作爲運動參數進行排序,並讓AMS根據這些參數對響應進行排序。例如,如果我使用這個url _GET /authors?sort=lastname,firstname_它會運動姓氏然後firstname。然而,如果我這樣做了GET /authors?sort=number_of_books,lastname,firstnam*它會根據書籍數量,姓氏和名字返回作者。如何實現使用Active Model Serializer進行排序?

它似乎默認情況下不會這樣做(他們將來不會這樣做),但我可以在序列化程序中做些什麼來爲我做這些嗎?

回答

3

根據我的經驗,AMS並不關心排序問題。這似乎是你在序列化之前要做的事情。也許在控制器或更好的模型中。

UPDATE

@CalebSayre如果你的排序參數只是字段的簡單列表排序,你也許可以矇混過關,因爲這簡單的東西。

render json: Author.order(params[:sort]), serializer: AuthorSerializer 

如果沒有傳入任何排序參數,它只會跳過訂單子句。

+0

我同意丹。你真正想要的是創建一個Search或Filter對象,它接受這些參數,執行所有的排序邏輯,然後返回集合。然後將這個集合和元數據傳遞給AMS。 – Genzume

+0

@TylerFerraro我想這真的是我的問題是...我如何傳遞字段作爲排序參數,以便我可以做排序? –

相關問題