J'ai deux modèles: projet et tâche (par exemple) avec un modèle de jointure: Project_task permettant à un has_many par rapport à la relation que les tâches peuvent être partagées à travers des projets. P>
J'ai une position spécifiée en tant qu'attribut du modèle Project_Task. Maintenant, je veux pouvoir accéder à des tâches par leur position dans la table Project_Tasks via un projet donné. P>
I.e. Project.tasks (commandé par la position indiquée pour chaque tâche dans la table Project_Tasks). P>
est-ce possible? P>
3 Réponses :
Je pense que quelque chose comme ça peut vous aider:
has_many :project_tasks has_many :tasks, :through => :project_tasks, :order => 'project_tasks.position'
Merci dmitry, c'est exactement ça
class Task < AR::Base belongs_to :project has_one :project_tasks,:through=>:project_tasks end class Project < AR::Base has_many :project_tasks has_many :tasks ,:through=>:project_tasks,:order => 'project_tasks.position' end class ProjectTask < AR::Base belongs_to :task belongs_to :project end
C'est ce qui fonctionne pour moi dans les rails 5.x:
duplicaté possible de Comment puis-je Commandez A HAS_MANY par l'association à Ruby sur rails?