【发布时间】:2018-02-19 01:26:20
【问题描述】:
在创建或更新时,我通常这样编写控制器:
def update
if current_user.update(user_params)
render status: 200, json: {
message: "Successfully updated user.",
user: current_user
}.to_json
else
render status: 422, json: {
errors: current_user.errors
}
end
end
您可以看到,我想将自定义消息与我的用户对象一起传递。但是当我这样做时,它不使用 UserSerializer ......我尝试使用 This:
render status: 200, json: {
message: "Successfully updated user.",
user: ActiveModel::Serializer::UserSerializer.new(user)
}.to_json
这行得通...但是如果有一个对象为空,就会导致问题...它会导致 Rails 错误。
有没有更好的方法来处理这个问题,而不必花费大量时间重写我的几十个创建/更新控制器?
具体来说,我希望返回如下所示的 JSON:
{
"message": "Successfully updated user.",
"user": {
...
}
}
【问题讨论】:
-
你使用什么版本的序列化器?
-
0.10 是我正在使用的版本。
标签: ruby-on-rails active-model-serializers