2016-05-05 68 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 
相關問題