rails has_many :through - Est-il possible d'avoir les conditions dans le travers de la table?
Il y a 2 modèles, et ils sont liés à l'aide d'un has_many :si la relation.
Y est :le paramètre conditions, qui va chercher une condition à l'autre modèle de table, mais est-il d'une certaine manière pour créer une condition dans la table de jointure?
Par exemple, suposé que j'ai:
User
Game
GameUser
Un Utilisateur peut avoir beaucoup de jeux, comme un Jeu peut avoir de nombreux utilisateurs.
Mais je veux stocker des informations supplémentaires dans la table conjointe, par exemple si l'utilisateur aime ou pas ce type de jeu.
Et je voudrais avoir une relation filtre de mon modèle d'Utilisateur, quelque chose comme ceci:
has_many :games, :through => 'game_users'
has_many :liked_games, :through => 'game_users', :conditions_join => { :like => true }
Est là une jolie façon d'avoir cette fonctionnalité?
- Semble être lié à cette question, qui a une bonne réponse => stackoverflow.com/questions/408872/...
- Double Possible de Rails has_many :par le biais de recherche par Attributs Supplémentaires dans la Jointure Modèle
Vous devez vous connecter pour publier un commentaire.
De Jochen lien a une bonne solution, mais
:conditions
est obsolète et le:conditions => ['event_users.active = ?',true]
peu juste ne semble pas très rails. Essayez ceci::conditions => ['event_users.active = ?',true]
était de savoir comment les choses ont été faites avant de Rails 3.game_likes
?, je veux dire juste avec des conditions surliked_games
Dans les Rails 4 que vous pouvez faire: