Active Model Serializer没有响应正确的属性

时间:2016-12-08 15:01:21

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

我正在使用rails-api项目,我正在使用active model serialiazer。但不幸的是,它没有按预期工作。这是我的V1::HuntsController

class V1::HuntsController < V1::MainController
  def index
    render json: Hunt.all
  end
end

My hunts serializer看起来像这样

class HuntSerializer < ActiveModel::Serializer
  belongs_to :user
  attributes :id,:title,:picture_url,:clue
  private
  def picture_url
    object.picture.url
  end
end

但是在我的response中我获得了hunt的所有属性。我试图明确定义序列化程序以避免版本问题。

render json: {data: Hunt.all } ,each_serializer: HuntSerializer

但似乎没有任何效果。在我可以看到的日志中,

[active_model_serializers] Rendered V1::HuntSerializer with Hash (32.36ms)

这里发生了什么事。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

render json: Hunt.all, each_serializer: HuntSerializer(不需要数据根目录)

然后验证序列化器是否被命中,将byebug放在picture_url函数的主体中。如果byebug被击中,你确实在使用序列化器。 (必须在gemfile中包含gem byebug)