Associations belongs_to many ne fonctionne pas

Par Steelmen, il y a 9 ans


Bonjour,

J'essai de créer un système qui relie mes articles à une table images, toutes les images seront stocké dans la table images et seront lié par un champs post_id.

Ce que je fais

J'ai donc une table post et une table images avec post_id

class Post < ApplicationRecord belongs_to :images end ______________________ class Image < ApplicationRecord belongs_to :classified end

Ce que je veux

J'aimerais pouvoir afficher les images lié à mon article dans ma vue
post.images.path

Ce que j'obtiens

Pour le moment j'ai un undefined method error sur images

2 réponses

kal-el, il y a 9 ans

Par définition pour ce que tu veux faire, un post a plusieurs image et une image est associée à un post et un seul. Du coup, dans ton model Post tu ne dois pas utiliser belongs_to mais has_many:

class Post < ApplicationRecord has_many :images end class Image < ApplicationRecord belongs_to :post end

Tu peux ensuite récupérer la liste des images associés à un Post en faisant:

post.images

A noter tout de même qu'ici post.images renvoi une collection, donc post.images.path ne fonctionnera pas (A contrario, ceci fonctionne post.images.first.path). A toi de boucler sur cette collection d'images pour toutes les afficher.

Steelmen, il y a 9 ans

Très bien merci de ta réponse kal-el :)