active_model_serializer 0.10.0.rc5中的ActiveModel :: Serializer :: CollectionSerializer :: NoSerializerError

Rup*_*ali 6 active-model-serializers ruby-on-rails-4 grape-api

我正在使用active_model_serializer 0.10.0.rc5grape gemapi.

我有一个这样的帖子端点:

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
Run Code Online (Sandbox Code Playgroud)

我的序列化程序看起来像这样:

class V1::Serializers::PostSerializer < ActiveModel::Serializer
  attributes :id, :name, :slug
end
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试访问post端点时,我收到以下错误:

ActiveModel::Serializer::CollectionSerializer::NoSerializerError - No serializer found for resource:
Run Code Online (Sandbox Code Playgroud)

我在调试问题时想出的问题在于CollectionSerializer#initialize这个gem.我想这个serializer_class变量是零.

我已经尝试了几乎所有与此问题相关的链接.但没有一个对我有用.

小智 6

尝试使用序列化程序而不是 each_serializer:

get '', serializer: V1::Serializers::PostSerializer  do
Run Code Online (Sandbox Code Playgroud)

代替:

get '', each_serializer: V1::Serializers::PostSerializer  do
Run Code Online (Sandbox Code Playgroud)