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

时间:2014-08-30 03:39:05

标签: ruby-on-rails json api active-model-serializers

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

以下是BookmarksSerializer

中的app/serializers/bookmarks_serializer.rb序列化程序
class BookmarksSerializer < ActiveModel::Serializer
  attributes :id, :url, :title
end

和我的Api::UsersController内部的控制器方法,其顶部有一个respond_to :json过滤器

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的github版本 宝石。

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

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

2 个答案:

答案 0 :(得分:1)

试试这个

渲染:json =&gt; @bookmarks,each_serializer:BookmarksSerializer

答案 1 :(得分:1)

您正在使用活动模型序列化程序的主分支。 The array serializer在4天前添加,并且不接受任何可能错误的论据。您的代码应该可以正常使用0-9-stable。尝试:

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