[RAILS] Solution lorsque les données d'image deviennent nulles via l'écran de confirmation

Y a-t-il un moment où vous souhaitez créer dans le flux de l'écran de validation → écran de confirmation → fin de validation? Je viens d'ajouter un écran de confirmation, mais il est resté bloqué car les données ont été enregistrées et traitées un peu différemment. .. J'écrirai l'expérience à ce moment-là sous forme de mémorandum!

Ceux qui trouveront cet article utile

-L'image est affichée sur l'écran de confirmation, mais l'image ne peut pas être téléchargée sur l'écran des détails de la publication. -Lorsque vous déboguez avec binding.pry etc. et vérifiez le comportement de l'action de confirmation de publication (action de confirmation), seule l'image est nulle. -Même si je le vérifie en utilisant SQL, seules les données d'image ne sont pas enregistrées.

Pourquoi devenir nul?

Apparemment, il n'y a pas de données d'image dans les informations renvoyées par l'écran de confirmation lors du passage à l'écran de confirmation.

Il semble qu'il soit nécessaire de sauvegarder les données d'image séparément avant d'afficher l'écran de confirmation, puis de les retirer et de les utiliser.

Conclusion de la solution

-Ajouter la description de «caché» dans l'écran de confirmation -Utilisez le paramètre : image_cache. (N'oubliez pas de passer : image_cache dans le contrôleur ...)

hidden = ** Utilisé lors de l'envoi de données masquées au serveur. La valeur spécifiée dans l'attribut value est envoyée au serveur. ** **

image_cache = ** Un paramètre qui gère les données d'image elles-mêmes. (Ce paramètre est utilisé lorsque l'écran de confirmation est monté.) **

Code de référence

new.html.erb


<div class="thumbnail">
  <%= f.file_field :image %>
  <%= f.hidden_field :image_cache %>← Addendum
</div>
<%= f.submit "Vers l'écran de confirmation" %>

confirm.html.erb


<%= form_with model: @tournament, url: tournaments_path, html: { method: :post }, local: true do |f| %>
  <%= f.hidden_field :start_time %>
  <%= f.hidden_field :image %>
  <%= f.hidden_field :image_cache %>← Addendum
  <%= f.submit "créer"%>
<% end %>

tournaments_controller.rb


def tournament_params
    params.require(:tournament).permit(:start_time, :image, :image_cache)
end

Vous pouvez maintenant recevoir et afficher les données d'image! ..doit.

finalement

La description lors du passage à l'écran de confirmation change d'un endroit à l'autre, elle reste donc bloquée de manière inattendue. Je veux vivre plus et grandir! !!

J'espère que cela aide ceux qui sont dans la même situation. LGTM: thumbsup: Je vous serais reconnaissant si vous pouviez le résoudre ou le trouver utile. Lol

Recommended Posts

Solution lorsque les données d'image deviennent nulles via l'écran de confirmation