我正在使用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)
这里发生了什么事。任何帮助将不胜感激。
答案 0 :(得分:1)
试
render json: Hunt.all, each_serializer: HuntSerializer
(不需要数据根目录)
然后验证序列化器是否被命中,将byebug
放在picture_url函数的主体中。如果byebug
被击中,你确实在使用序列化器。 (必须在gemfile中包含gem byebug)