J'ai 3 modèles User, Listing et Message. Ce que je veux est pour un utilisateur authentifié d'avoir beaucoup de listes. Les listes peuvent alors avoir plusieurs messages. Ainsi, les messages sont liés à l'utilisateur via le modèle de liste. Je suis en mesure d'obtenir une liste d'utilisateurs, mais pas en mesure d'obtenir les messages des utilisateurs qu'il possède à travers les listes. Voici les associations que j'ai actuellement.Comment accéder aux enregistrements à partir d'un modèle imbriqué à 2 niveaux
class User < ActiveRecord::Base
has_many :listings, :dependent => :destroy
end
class Listing < ActiveRecord::Base
belongs_to :user
has_many :messages
end
class Message < ActiveRecord::Base
belongs_to :listing
end
Pour créer un message, je le fais simplement;
@listing = Listing.find(params[:listing_id])
@message = @listing.messages.build(params[:message])
et obtenir l'inscription de l'utilisateur que j'ai cela;
@user_listings = Listing.user_listings(current_user)
Mais les messages liés obtenir aux listes de l'utilisateur ne se manifestent pas. Qu'est-ce que je fais de mal ou comment vais-je faire à ce sujet? aide appréciée.
D'où vient user_listings viennent dans tout cela? – mark
mark, c'est parce qu'il n'y a aucun moyen d'obtenir les messages, sauf si vous obtenez les listes des utilisateurs. Le modèle de message est un petit-enfant du modèle User, bien qu'il n'y ait pas d'association directe entre les deux modèles. –