Я использую CarrierWave и, чтобы иметь возможность удалить изображение, мне нужно разрешить параметр, который не является частью пользователя:Рельсы, сильные параметры, частично требуется
params.require(:user).permit(:first_name, :last_name, :description, :picture, :remove_picture)
Это дает мне ошибки, но изменить его:
params.permit(:first_name, :last_name, :description, :picture, :remove_picture)
как предложено в одном из тематических разделов на форуме, дает ошибку тоже - «Самовольная параметры фиксации, идентификатор» и т.д. Как я могу требовать пользователей и в то же время - разрешение remove_picture?
Спасибо за длинный ответ, но я понял, что моя проблема другая. Моя загрузка изображений работает нормально, но когда я нажимаю «добавить аватар», не выбирая прикрепляемый файл, я получаю «параметр отсутствует или значение пусто: пользователь». Только отправленные параметры - utf8, method, authenticity_token, commit, id (но id без ключа пользователя). Я назначил перенаправление в своем контроллере, но он работает только тогда, когда «пользователь» не требуется. Я должен найти способ не требовать пользователя, но требуя его в одно и то же время ... – Jes
Вы можете использовать 'params.fetch (: user, {}). Allow (: a,: b,: c)'. Но вы должны просто взглянуть на примеры в readme и правильно вложить эти входы. Вероятно, это проблема [XY] (http://xyproblem.info/), в которой ваша форма испорчена, но вы чрезмерно сконцентрированы на использовании сильных параметров для предотвращения этой проблемы. Конечным результатом является несогласованный API. Если вы не можете заставить его работать, добавьте вашу форму и контроллер на вопрос. – max