Rails отфильтрует «скалярные» параметры, которые явно не разрешены. Могу поспорить, что вы пробовали обычное строковое значение, и все работало нормально, но после отправки массива или объекта все не работает.
Чтобы все заработало, просто обновите оригинальный метод shipping_params
в вашем ShippingsController с помощью этого:
def shipping_params
params.require(:shipping).permit(:name, content: {})
end
Кстати, взгляните на документацию ActionController :: Parameters API . Я уверен, что в конечном итоге вы добавите больше атрибутов в вашу модель, и вам также понадобятся ключи для них.
Для чего это стоит: вы можете столкнуться с аналогичным методом permit!
в ссылочной документации. Просто будьте осторожны, если вы а) используете атрибуты модели для принятия решений об авторизации и б) разрешаете людям, которым вы не доверяете, использовать ваш API. Последнее, что вы хотели бы сделать, - это позволить кому-то установить для столбца is_admin
значение true в пользовательской модели.