我有一个名为用户的模型,在许多操作中,我将响应呈现为json。为了显示用户数据,我正在使用
@user = User.find_by_id(params[:id])
render json: {data: @user}
现在我要求在响应用户数据时,我只需要显示手机号码的最后2位数,例如******** 78,有没有办法实现这一点,因为改变了响应在每个动作中都会太困难,所以有没有办法编写处理这种情况的常用方法。
答案 0 :(得分:2)
您可以在user
模型中编写方法
user.rb
def as_json(options = {})
# use options as per need
{id: self.id, name: self.name, mobile: mask}
end
def mask
# masking logic
end
您可以编写一个掩盖初始字符的方法并执行render json: {data: @user.as_json)}
结帐this链接
答案 1 :(得分:0)
最后我通过
解决了问题 render json: {data: @user.as_json}
当我打电话
{
“id”: 143,
“email”:test1@test.com,
“mobile_number”: “********67”
}
即使@user可以包含记录集合,每条记录的手机号码也会以******** 78格式呈现。
现在回复
{{1}}
感谢benchwarmer's帮助。