9
votes

Manipulation de l'ordre avec has_many par la relation

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.

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é.

I.e. Project.tasks (commandé par la position indiquée pour chaque tâche dans la table Project_Tasks).

est-ce possible?


3 Réponses :


18
votes

Je pense que quelque chose comme ça peut vous aider:

has_many :project_tasks
has_many :tasks, :through => :project_tasks, :order => 'project_tasks.position'


1 commentaires

Merci dmitry, c'est exactement ça



2
votes
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

0 commentaires

1
votes

C'est ce qui fonctionne pour moi dans les rails 5.x: xxx


0 commentaires