2011-05-16 28 views
7

Tengo dos modelos: proyecto y tarea (por ejemplo) con un modelo join: project_task que permite una relación has_many through para que las tareas se puedan compartir entre proyectos.orden de manipulación con has_many a través de la relación

He especificado la posición como un atributo del modelo project_task. Ahora quiero poder acceder a las tareas por su posición en la tabla project_tasks a través de un proyecto determinado.

es decir, project.tasks (ordenado por el puesto indicado para cada tarea en la tabla project_tasks).

¿Esto es posible?

+0

posible duplicado de [? ¿Cómo puedo solicitar una has_many través de la asociación en Ruby on Rails] (http://stackoverflow.com/questions/2205618/how-do-i-order-a-has-many-through-association-in-ruby-on-rails) –

Respuesta

17

creo que algo así puede ayudar a:

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

Gracias Dmitry, eso es exactamente –

2
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 
Cuestiones relacionadas