У меня есть модель с именем User и во многих действиях я получаю ответ как json. напр, показывая пользовательские данные, я используюИзменение реакции JSON в рельсах?
@user = User.find_by_id(params[:id]) render json: {data: @user}
Теперь у меня есть требование, чтобы при реагировании пользовательских данных мне нужно, чтобы показать только Последние 2 цифры номера мобильного телефона для экс) ***** *** 78, есть ли способ достичь этого, потому что изменение ответа в каждом действии будет слишком сложным, так что есть ли способ написать общий метод для обработки этой ситуации.
Я выполнил то, что вы сказали, но иначе: «render json: {data: @ user.as_json (only: [: id,: email]), methods:: mask}', но у меня есть ответ ' {"id": 121, "email": "[email protected]", "mask": "******** 45"} 'т.е. имя метода является ключом мобильного номера. Можете, пожалуйста, выяснить, в чем проблема. –
Вы можете назвать метод, который вы хотите, в ответ json – benchwarmer
То, где проблема, мне нужен ответ, чтобы быть мобильным номером, но для маскирующей логики '' ******** "+ self.mobile_number.slice (8 , 9) ', если имя метода - mobile_number, это вызовет бесконечный цикл. –