Rails Serializer for Devise用户模型未被使用

时间:2014-08-27 20:33:28

标签: ruby-on-rails json ember.js response serializer

这是我的Rails应用给我的回复:

{"users":[{"users":{"id":20,"email":"subscriber@email.com", ...

这里看起来应该是什么样的(这是另一个工作资源):

{"companies":[{"id":448,"name":"Microsoft Security ...

注意包装users:对象。

这是我的用户模型的序列化程序:

class UserSerializer < ApplicationSerializer
  attributes :id,
             :first_name,
             :last_name
end    

对于公司模式:

class CompanySerializer < ApplicationSerializer
  attributes :id, :name
end

我错过了什么?我需要做什么,以便json响应使用此UserSerializer类?

def index
  load_users
  render json: @users
end

1 个答案:

答案 0 :(得分:2)

我知道Rails无法忽略我的序列化程序是个问题。

在我的控制器中我写了这个:

# app/controllers/api/v1/users_controller.rb:

class Api::V1::UsersController < ApplicationController
  def default_serializer_options
    { each_serializer: UserSerializer } # I use each_serializer instead of serializer because it's rendering a collection.
  end
end

基本上我通过人工处理代码来使用正确的序列化程序,现在它正常工作。