Rup*_*ali 6 active-model-serializers ruby-on-rails-4 grape-api
我正在使用active_model_serializer 0.10.0.rc5和grape 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)