Вложенные параметры не так уж сложны.
params.require(:my_example)
.permit(:wutz, options: [:id, :name, keywords: []])
Предполагается, что options
- это массив ресурсов, в котором ключи: id,: name и: ключевые слова должны быть в белом списке.
:wutz, :id, :name
может быть любым разрешенным скалярным типом. keywords: []
разрешает массив любого скалярного типа (любая строка, целое число, дата и т. Д.). Я действительно не понимаю, почему ты беспокоишься здесь.
Проблема в основном с вложенными хэшами с чрезвычайно динамичным содержимым. В этом случае, который не совсем покрыт сильными параметрами Rails, вы можете использовать .permit!
и использовать все инструменты рубинового хэширования и нарезки кубиков, которые весьма внушительны.
Драгоценный камень в значительной степени поддерживает API ActionController::Parameters
в более поздних версиях Rails, так что я не ожидаю каких-либо серьезных проблем при обновлении.
https://github.com/rails/strong_parameters#nested-parameters