控制器中的索引方法不适用于活动模型序列化程序

我想发送一个包含我的bookmarks资源集合的json响应。 出于某种原因,主动模型序列化器不会按预期操纵我的json。 它只呈现默认响应。

这是app/serializers/bookmarks_serializer.rb BookmarksSerializer序列化app/serializers/bookmarks_serializer.rb

 class BookmarksSerializer < ActiveModel::Serializer attributes :id, :url, :title end 

和我的Api::UsersController控制器方法,它在顶部有一个respond_to :jsonfilter

 def index user = User.find_by(username: params[:username]) @bookmarks = user.bookmarks render json: @bookmarks.to_json end 

而不是只获取:id,:title和:url,我得到完整的默认哈希

我究竟做错了什么? 我使用rails 4.1.5active_model_serializers gem的github版本。

 gem 'active_model_serializers', github: 'rails-api/active_model_serializers' 

仅供参考:我在同一个控制器中有一个show方法,它的序列化器可以很好地获取单个资源。 它只是索引方法中不呈现的集合。 请帮忙

您正在使用活动模型序列化程序的主分支。 数组序列化程序是在4天前添加的,并且不接受任何可能错误的参数。 你的代码应该可以很好地对抗0-9-stable 。 尝试:

gem 'active_model_serializers', github: 'rails-api/active_model_serializers', branch: '0-9-stable'

试试这个

render:json => @ bookmarks,each_serializer:BookmarksSerializer