我想将创建的对象限制为预定义字段。创建用户后,我通常会在以后返回该对象。但我想只返回预定义的字段。现在我这样做。
u = User.create(name:"foo", address:"bar", encrypted_password:"secure_pw")
# render json: u.attributes.except('created_at','updated_at', 'encrypted_password'), status:200
render json: u.attributes.slice('name','address'), status:200
但是这段代码既不干也不健壮(或漂亮;))。我怎么能写得更好呢?
答案 0 :(得分:0)
在to_json
模型中创建User
方法并在控制器中使用它。
def to_json
{
name: name,
address: address
}
end
其他选项可能是某些(API)Presenter,但在这个例子中对我来说似乎有些过分。
您还可以查看ActiveModel::Serializer。