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

谢谢!对我来说非常有用的信息! –

相关问题