J'ai essayé de faire la première tentative de téléchargement d'une image via CarrierWave. Je peux voir les données envoyées, mais dans la console, je vois aussi un BEGIN et un ROLLBACK dans l'action. Alors, voici ce que j'ai jusqu'à présentRails Carrierwave "action" => "créer"} autorisé: faux>
Contrôleur
class PhotosController < ApplicationController
before_action :set_photo, only: [:show, :edit, :update]
def index
@photos = Photo.all
end
def new
@photos = Photo.new
end
def create
@photo = Photo.new(photo_params)
if @photo.save
redirect_to photos_path, notice: "The photo #{@photo.name} has been uploaded."
else
render "new"
end
end
private
def photo_params
params.require(:photo).permit(:name, :image, :id)
end
def set_photo
@photo = Photo.find(params[:id])
end
end
FORMULAIRE
<div class="well">
<%= form_for Photo.new, html: { multipart: true } do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :image %>
<%= f.file_field :image %>
<%= f.submit "Save", class: "btn btn-primary" %>
<% end %>
</div>
MODÈLE
class Photo < ApplicationRecord
mount_uploader :image, ImageUploader
end
Uploader est à peu près aussi généré, le stockage est un fichier et il utilise MiniMagick et activé la version du pouce
Maintenant, quand je clique sur le bouton d'envoi, je vois cela dans la console:
Started POST "/photos" for 127.0.0.1 at 2017-09-14 22:11:25 +0200
Processing by PhotosController#create as HTML
Parameters: {"utf8"=>"V", "authenticity_token"=>"Aj4CyJLaxh439igdVYJ60Pz9TqLzuvPVfkh903YAcaVuIqU8bKmX0zrgbL/GvnabcQ7i/hsqWxwvG1NRQO16JA==", "photo
"=>{"name"=>"fdsfds", "image"=>#<ActionDispatch::Http::UploadedFile:0xa96f1d0 @tempfile=#<Tempfile:C:/Users/Andrea/AppData/Local/Temp/RackMultipart2
0170914-4696-1pwrynm.jpg>, @original_filename="Clipboard02.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"photo[
image]\"; filename=\"Clipboard02.jpg\"\r\nContent-Type: image/jpeg\r\n">},
"commit"=>"Save"}
(1.0ms) BEGIN
(0.0ms) ROLLBACK
Et sur la page où je suis en cours d'exécution le téléchargement, il retourne à la nouvelle forme et thi texte apparaît en bas
<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"....(manuallyremoved)==", "photo"=><ActionController::Parameters {"name"=>"fdsfds", "image"=>#<ActionDispatch::Http::UploadedFile:0xa96f1d0 @tempfile=#<Tempfile:C:/Users/Andrea/AppData/Local/Temp/RackMultipart20170914-4696-1pwrynm.jpg>, @original_filename="Clipboard02.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"photo[image]\"; filename=\"Clipboard02.jpg\"\r\nContent-Type: image/jpeg\r\n">} permitted: false>, "commit"=>"Save", "controller"=>"photos", "action"=>"create"} permitted: false>
Alors qu'est-ce qui provoque réellement le false: dans ce cas? J'ai aussi remarqué qu'il ya un dossier créé dans mon public/uploads/tmp et l'image est effectivement enregistrée dans ce dossier
Merci pour toutes suggestions
Intéressant. J'ai essayé d'ajouter une de ces lignes de débogage trouvées sur un autre site, mais je suppose que je me trompais. Maintenant, il s'avère que le problème est dû au fait que j'ai activé les vignettes dans l'uploader, donc je dois comprendre pourquoi cela crée des problèmes. Un pas en avant cependant. Merci pour la bonne astuce Fabrizio! – Andrea
@Andrea si vous avez besoin de plus d'aide poser une nouvelle question avec les détails du problème, puis envoyez-moi le lien afin que je puisse le lire et essayer de vous aider. Merci –
Merci @Fabrizio En fait, je viens de poster une autre question https://stackoverflow.com/questions/46268538/rails-couldnt-find-nested-resource-with-id – Andrea