Можно ли добавить в белый список 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, чтобы вы могли сохранить его как текст (и использовать строгие параметры, чтобы убедиться, что это строка).

Другие вопросы по тегам