0

我正在使用ActiveModelSerializer Rails API。在索引操作中的某個控制器上,我需要顯示類的所有現有對象。如何在串行器中獲取模型的所有對象?

def index 
    render json: { books: Book.all } 
end 

但我想這不是正確的做法。遵循慣例,我需要使用序列化器。所以我的問題是我怎麼能使用序列化器來實現這一點,所以我可以寫這樣的東西?

def index 
    render json: { books: BookSerializer } 
end 

謝謝。

+0

你在尋找類似'render json:@books,serializer:BookSerializer'的東西嗎? – skozz

+0

或'render json:Book.all,serializer:BookSerializer'? – skozz

回答

1

這應該工作

def index 
    books = Book.all 
    render json: books, each_serializer: BookSerializer, root: books 
end 

附:小心,儘管渲染所有書籍會很慢。最好添加分頁

+0

如果我有幾個型號會怎麼樣?這不僅可以用一個模型的對象完成嗎? –

+1

@BillyLogan你可以創建頂級串行器。這裏是一個例子https://gist.github.com/TheSmartnik/55c207dcdb7926dbfc5e59e1430b4914 –

+0

謝謝!對我來說非常有用的信息! –

相關問題