Je suis aux prises avec une association has_many. J'ai une demande d'agenda. Les joueurs du modèle sont les suivants:has_many association avec un modèle de données non traditionnel
- utilisateur
- UserFriend
- UserFoodProfile
Je veux être en mesure d'obtenir à tous les aliments que les amis d'un utilisateur ont mangées. Donc, je veux être en mesure d'obtenir: current_user.friends.profiles
J'ai configuré les associations correctement jusqu'ici pour pouvoir accéder à current_user.friends
, mais maintenant je veux pouvoir obtenir toutes les entrées de mes amis aussi les 30 derniers jours.
Voici mes modèles
class User < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 20
has_many :user_food_profiles
has_many :preferred_profiles
has_many :food_profiles, :through => :user_food_profiles
has_many :weight_entries
has_one :notification
has_many :user_friends
has_many :friendships, :class_name => "UserFriend", :foreign_key => "friend_id"
has_many :friends, :through => :user_friends
class UserFriend < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
class UserFoodProfile < ActiveRecord::Base
belongs_to :user
belongs_to :food_profile
belongs_to :post
Le modèle UserFriend est configuré de la façon suivante:
- id
- user_id
- friend_id
- friend_name
Je veux me connecter à user_food_profiles
d'un ami afin que je puisse obtenir le user_food_profiles
actuel d'un ami de l'utilisateur comme "entrées" mais tout ce que j'ai essayé n'a pas fonctionné. Comment pourrais-je configurer cette association?
essayé de le faire:
- UserFriend:
has_many :user_food_profiles, :as => 'entries'
- UserFoodProfile:
belongs_to :friend, :foreign_key => 'friend_id'
Toutes les idées sur la façon de faire ce travail? Tenté de créer un finder_sql personnalisé mais je suis sûr que cela peut fonctionner avec les associations.