Загрузка файлов с помощью Rails 4, Strong Parameters и Carrierwave
Я портирую приложение, которое использует Carrierwave, на Rails 4, но у меня проблемы с сильными параметрами. У меня есть модель с
accepts_nested_attributes_for :photos
Вот как передаются загруженные изображения:
{
# ...
"model"=>
{
# ...
"photos_attributes"=>
{
"1362752177921"=>
{
"image"=>"test.jpg",
}
}
}
}
Однако я не могу понять, как написать параметры, которые будут принимать photos_attributes
,
я пытался .permit(photos_attributes: [])
но это просто пропускает их, когда я использую permit!
, uuid
то, что создано до сохранения, не появляется в SQL, и это вторая проблема:
photos.uuid may not be NULL: INSERT INTO "photos" ("created_at", "model_id", "image", "title", "updated_at") VALUES (?, ?, ?, ?, ?)
Документация для сильных параметров здесь отсутствует, и я даже не уверен, что делать дальше.
Обновление Это работало с вложенными атрибутами:
params.permit( ..., :photos_attributes => ['id', 'title', 'image', '_destroy'])
Но похоже, что Carrierwave или Nested Form должны быть обновлены для Rails 4 в первую очередь. Он просто пытается сохранить пустое изображение все время. Тот же код (без strong_params) работает в Rails 3.
1 ответ
Это работало с вложенными атрибутами:
params.permit( ..., :photos_attributes => ['id', 'title', 'image', '_destroy'])
Но похоже, что Carrierwave или Nested Form должны быть обновлены для Rails 4 в первую очередь. Он просто пытается сохранить пустое изображение все время, которое я вроде как :reject_if
, но все же это не 100 рабочих.