ActiveModel Serializer无法正常工作

时间:2018-01-25 12:06:07

标签: ruby-on-rails ruby-on-rails-4 serialization active-model-serializers

我在我的Rails API中使用ActiveModelSerialziers,它就像魅力一样,但我的一个函数似乎覆盖了它,只返回我的模型(没有任何关联)。如果调用不同的函数,则相同的模型会正确返回。

  def getClient
    type = params[:type]

    if type == 'user'
      @client = Client.find_by(user_id: params[:id])
    else
      @client = Client.find_by(id: params[:id])
    end


    render json: { success: true, response: @client }
  end

仅返回没有关联的client,序列化程序为:

class API::ClientSerializer < ActiveModel::Serializer

    attributes :name, :age, :address

    belongs_to :user
    has_many :check_ins
    has_many :client_docs
    has_many :payments
end

当调用以下函数时,相同模型(Client)正确返回(带关联):

  def show
    model_name = params[:model].classify
    item = model_name.constantize.find_by(id: params[:id])

    render json: item, status: :ok
  end

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

您在rander语句中缺少适配器::json

render json: item, adapter: :json, status: :ok