Я пытаюсь получить Paperclip для загрузки изображения в s3 из моей модели фестиваля в форме submit, но я получаю Непропущенный параметр: изображение. ошибкаPaperclip Неопроверенный параметр: image
Я проверил сильные параметры, проверку содержания модели и прочитал документы скрепки безрезультатно.
Я думаю, что я сузил проблему до моего запроса на отправку в БД, не может обрабатывать объект File, который присваивается Festival.image, но не может понять, как я буду представлять это в почтовом запросе.
Я собираю данные в рельсах, используя реакцию на рельсах на передней панели с рельсами в качестве бэкэнд. Я следовал вместе с этим примером кода https://github.com/carlbaron/react-file-upload-demo
Я также использую React-dropzone для захвата загруженного файла и добавляет атрибут предварительного просмотра для предварительного просмотра изображения.
Застрял на этом в течение некоторого времени, любая помощь очень ценится!
Начало запроса пост напечатанной утешать
Processing by FestivalsController#create as JSON
Parameters: {"festival"=>{"fest_name"=>"Test Festival", "image"=>{"preview"=>"blob:http://localhost:5000/76b95cb5-45bf-46a9-ba7b-f5b9ad127521"}}}
| Unpermitted parameter: image
Фестиваль объект выводится на консоль Сообщение Запрос к БД через Аксиос
postFestival(festival) {
let config = {
responseType: 'json',
processData: false,
contentType: false,
headers: ReactOnRails.authenticityHeaders(),
};
let str = JSON.stringify(festival);
console.log("ENTITY IS " + str);
//returns
//ENTITY IS {"fest_name":"Test Festival","image":{"preview":"blob:http://localhost:5000/76b95cb5-45bf-46a9-ba7b-f5b9ad127521"}}
return(
request.post('/festivals/create', {festival}, config)
);
},
фестиваль .rb
class Festival < ApplicationRecord
has_attached_file :image, default_url: "/assets/ASOT-COVER.png"
validates_attachment :image,
content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }
end
Фестивали Контроллер
def create
@festival = Festival.create(festival_params)
puts "festival.image =" + @festival.image.inspect
#returns = festival.image =#<Paperclip::Attachment:0x007fc288868bf0 @name=:image, @name_string="image", @instance=#
if @festival.save
puts "Festival SAved = + " + @festival.inspect
#returns the festival object saved to the DB minus the image param
else
respond_to do |format|
format.json { render json: @festival.errors, status: :unprocessable_entity}
puts "ERROR = " + @festival.errors.inspect
end
end
private
def festival_params
params.require(:festival).permit(:fest_name, :fest_organizer, :fest_location,
:fest_date, :fest_url, :fest_venue, :fest_description,
:image)
end
end
Спасибо, что избавились от непредвиденной ошибки param! Теперь я получаю сообщение «Ошибка дескриптора Paperclip No» для {«preview» => «blob: http: // localhost: 5000/76b95cb5-45bf-46a9-ba7b-f5b9ad127521»}, но из других вопросов переполнения стека я бы не передал правильный класс к Paperclip, поэтому я постараюсь изучить это, когда вернусь домой! – monopolyman