J'ai un modèle nommé HEN:
Processing by HensController#show as HTML Parameters: {"id"=>"3"} User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]] Hen Load (0.5ms) SELECT "hens".* FROM "hens" WHERE "hens"."id" = $1 LIMIT $2 [["id", 3], ["LIMIT", 1]] â³ app/controllers/hens_controller.rb:16:in `show' Rendering hens/show.html.erb within layouts/application Rendered hens/show.html.erb within layouts/application (Duration: 5.9ms | Allocations: 3302) [Webpacker] Everything's up-to-date. Nothing to do Completed 200 OK in 125ms (Views: 67.7ms | ActiveRecord: 10.7ms | Allocations: 36995)*
3 Réponses :
Vous n'êtes pas réellement en boucle à travers des images. Vous devez utiliser L'équivalent plain-rubis serait p> @ hen.picutres.ache code> ou
pour l'image dans @ hen.pictures code>. Sans cela, vous venez de passer un bloc à
@ hen.pictures code>; Le bloc est ignoré et l'expression renvoie
@ hen.pictures code> (
image :: activerecord_associations_collectionproxy code>).
@hen.pictures.each { |picture| ... this block is used by the `each` method }
Merci de répondre, maintenant, il renvoie un tableau vide [] b>
@petrov Je pense que vous avez également besoin d'un accept d'attributs imbriqués dans le modèle de poule ( accepte_netés_attributes_for: images, rejet_if:: all_blank, allemande_destroy: true code>), ainsi que dans vos paramètres solides
images_attributes: [: ID,: Imagobe_ID,: Imagetable_Type ,: Image] Code>
ici Vous imprimez l'URL de l'image. Vous ne devriez pas inclure = fort> lorsque vous bouclez strong> vous devez utiliser strong> alors vous avez besoin Pour boucler les images à l'aide de chacun. <%= image_tag pic.url.to_s %>
Cela peut ne pas être la réponse directe du problème, mais j'ai constaté qu'une meilleure option est d'utiliser Activestorage que de créer des associations polymorphes entre les modèles.
Tout d'abord, installez l'activestorage: p> puis ajoutez macro Ajouter au formulaire de vue: P> has_one_attached code> ou
has_many_attached code> sur les modèles: p>
<%= image_tag hen.image if hen.image.attached? %>