6
votes

Rails - PaperClip - Multiple Photo Télécharger Non Sauvegarde

J'essaie de créer une page de création de produits dans des rails. Cela inclut l'ajout de plusieurs images et champs de texte. J'ai un modèle pour les produits et un pour les photos. J'utilise le gemme PaperClip pour le téléchargement de photos. Mais je n'ai aucune photo lorsque je visite la page du produit. Les photos ne sont pas enregistrées dans la base de données.

P.s. J'utilise haml. P>

app / vues / produits / show.html.haml strong> p> xxx pré>

application / contrôleurs / Produits_Controller strong> p> xxx pré>

app / modèles / Photo Strong> p>

= form_for @product, :html => { :multipart => true } do |f|
  %p
    = fields_for :photos do |f_i|
      =f_i.file_field :image 


3 commentaires

Supprimer cette ligne has_attached_file: photo de votre modèle de produit Il n'y a pas besoin de cela ici.


Je n'ai pas compris jusqu'à ce que vous posiez à nouveau la même question ... qu'en est-il de l'ancien? vous gaspillez les autres fois .. Stackoverflow.com/Questtions/166665809/...


et troisième est ici Stackoverflow. com / questions / 16807112 / ...


5 Réponses :


3
votes

Tout d'abord, votre formulaire est faux, q pour l'enregistrement des photos utilisé champs_for, alors vous utilisez champs_for f.object.photos ou utiliser photo.new do | g |, l'autre dans votre modèle de relation est erroné has_attached_file is has_many Photos, le papier HAS_ATTATECHED_FILE doit être utilisé dans le modèle à utiliser non dans la relation avec l'autre modèle. J'espère que cela vous aide, maintenant d'avoir un produit avec plusieurs photographies, je vous recommande d'utiliser le gem cocon, je q va selon votre cas, https://github.com/nathanvda/cocoon


1 commentaires

Ce n'est pas assez articulé



-1
votes

Je pense que xxx

devrait être dans # ewoew méthode Méthode Cuz .Build Interact avec @fields_for


1 commentaires

Sa relation entre les modèles foirées.



-1
votes
   @product.image requires image to be the attribute of product model means image fields should be in products table.

   @product.image should be @product.photo.image.url

2 commentaires

Je n'ai pas fonctionné, je finirai par avoir une méthode non définie «Photos» pour Nil: Nilclass


Il y a plusieurs photos pour le produit .. @ Product.Photo ne fonctionnera pas, je suppose avoir besoin d'une boucle pour afficher toutes les photos!



3
votes

Vous aviez écrit sous le modèle de photo comme suit: xxx

Cela n'a aucun sens .. Dans votre modèle de photo, écrivez xxx

tandis que dans le modèle de produit écrire: xxx

effectivement ce sera un à plusieurs Relation aussi loin que j'avais compris:

Il n'est pas nécessaire d'écrire has_attached_file dans le modèle de produit. Cela sera écrit sous le modèle de photo comme xxx

maintenant, vous avez plusieurs photos pour le produit. Donc, vous avez besoin de boucle pour montrer ces photos. par exemple, dans votre spectacle, faites quelque chose xxx

__ __ __ __ _ _ modifier 2 _ __ _ __ _ _

Dans votre modèle de produit xxx

dans votre modèle photo xxx

dans votre contrôleur de produits xxx

dans votre nouveau.html.haml xxx

essayez maintenant. !


2 commentaires

hein ... c'est bizarre ils ne sont pas


des idées sur ce que je devrais faire



1
votes

Après avoir regardé votre code. C'est tout à fait simple que le produit n'a aucun attribut d'image. Photo Ayez un attribut image.

Vous devez donc accéder à des produits -> Photos -> Images P>

Faites ceci dans le contrôleur Afficher l'action P>

-@photos.each do |photo|
= image_tag photo.image.url
-end


0 commentaires