Ich versuche, Paperclip zu bekommen, um ein Bild zu s3 von meinem Festival-Modell auf dem Formular zu senden, aber empfange den unerlaubten Parameter: Bild. FehlerPaperclip unerlaubter Parameter: image
Ich habe die starken Params, die Validierung des Modellinhalts überprüft und die Büroklammer Dokumente ohne Erfolg durchgelesen.
Ich denke, ich habe das Problem auf meine Post Anfrage an die DB eingegrenzt kann nicht mit dem File-Objekt, das zu festival.image zugewiesen wird, aber kann nicht herausfinden, wie ich dies in der Post-Anfrage darstellen würde.
Ich erfasse die Daten in Schienen mit Reagieren auf Schienen am Frontend mit Rails als Backend. Ich folgte mit diesem Beispielcode https://github.com/carlbaron/react-file-upload-demo
Ich verwende auch React-dropzone, um die hochgeladene Datei zu erfassen, und es fügt das Vorschauattribut für die Bildvorschau hinzu.
Seit einiger Zeit auf diesem fest, jede Hilfe sehr geschätzt!
Beginn der Post-Anforderung gedruckt zu trösten
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
Festival Objekt auf die Konsole gedruckt Beitrag Anfrage an die DB über axios
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)
);
},
Festival .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
Feste-Controller
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
Danke, das hat den unzulässigen param-Fehler beseitigt! Jetzt bekomme ich den Paperclip No Handler Error für {"preview" => "blob: http: // localhost: 5000/76b95cb5-45bf-46a9-ba7b-f5b9ad127521"} aber von anderen Stack-Überlauf-Fragen wäre Im nicht korrekt übergeben Klasse zu Paperclip, also werde ich versuchen, dies zu untersuchen, wenn ich nach Hause komme! – monopolyman