2016-11-23 1 views
0

Скажем, у меня есть этот JSON:Можно ли использовать белый список JSON (как текст) в сильных параметрах Rails?

{ 
    name: 'David', 
    tags: { 
    is_confused: true 
    } 
} 

и в определенной модели (т.е. пользователя), я могу спасти это непосредственно ... но мои теги объект должен быть сохранен в столбце Текст, который будет позже сериализации к JSON. Есть ли способ сделать это с сильными параметрами?

ответ

3

Вы можете заставить метки json, прежде чем разрешить это как строку с сильными параметрами.

Предполагая, что ваш объект назван «Титулы»:

params[:tags] = params[:tags].permit(:is_confused).to_json 
final_data = params.permit(:name, :tags) 

Это использует сильные параметры, чтобы проверить поле метки перед включением его в строку JSON, так что вы можете сохранить его как текст (и использовать сильные параметры для убедитесь, что это строка).

+0

minor nitpick: сильные параметры не гарантируют, что это _string_. Только это простой тип (не массив или хэш). –

+0

Согласен, но мы только что изменили его на строку с командой раньше, поэтому можем быть уверены, что это будет строка ... * смешные глаза * * пальцы скрещены * – Hong

+0

Большое спасибо. Я пробовал этот вариант, но по какой-то причине я не знаю, что использование «require» во второй строке не применяло назначение в первой строке (мне требовалось в моем коде). –

Смежные вопросы