Можно ли добавить в белый список JSON (как текст) в сильных параметрах Rails?
Допустим, у меня есть этот JSON:
{
name: 'David',
tags: {
is_confused: true
}
}
и в определенной модели (т. е. пользователя) я могу сохранить это напрямую... но мой объект тегов должен быть сохранен в столбце Text, который впоследствии будет сериализован в JSON. Есть ли способ сделать это с сильными параметрами?
1 ответ
Решение
Вы можете принудительно применить теги к json, прежде чем разрешить его как строку с сильными параметрами.
Предполагая, что ваш объект называется "params":
params[:tags] = params[:tags].permit(:is_confused).to_json
final_data = params.permit(:name, :tags)
При этом используются строгие параметры для проверки поля тегов перед его превращением в строку json, чтобы вы могли сохранить его как текст (и использовать строгие параметры, чтобы убедиться, что это строка).