2016-05-05 29 views
6

我使用active_model_serializer 0.10.0.rc5grape gem作为api。active_model_serializer中的ActiveModel :: Serializer :: CollectionSerializer :: NoSerializerError 0.10.0.rc5

我有一个终点后像这样:

class V1::Endpoints::Posts < Grape::API 
    resource :posts do 
    desc 'Returns a list of posts.' 
    # serializing array 
    get '', each_serializer: V1::Serializers::PostSerializer do 
     @posts = Post.all 
     present @posts 
    end 
    end 
end 

我的串行看起来是这样的:

class V1::Serializers::PostSerializer < ActiveModel::Serializer 
    attributes :id, :name, :slug 
end 

现在,当我尝试访问端点后,我得到了以下错误:

ActiveModel::Serializer::CollectionSerializer::NoSerializerError - No serializer found for resource: 

我在调试问题时想到的问题在于CollectionSerializer#initialize这颗宝石。我想serializer_class变量是零。

我已经尝试了几乎所有似乎与此问题相关的链接。但没有人为我工作。

回答

2

尝试使用串行而不是each_serializer的:

get '', serializer: V1::Serializers::PostSerializer do 

相反的:

get '', each_serializer: V1::Serializers::PostSerializer do 
相关问题