Ik ben druk bezig met Ruby on Rails, daarbij maak ik een geneste applicatie vergelijkbaar met een bugtracker.
Models:
Project
Part
Task
Note
Alles hangt onder elkaar dus. Eerst had ik nested routes gebruikt, maar dat werkt zeer vervelend omdat je dan project_part_task_path e.d. gaat krijgen. Erg lange paden dus, de URL in de browser maakt me overigens niets uit. Het gaat om programmeer gemak.
Nu heb ik dit:
Werkt opzich wel leuk, het zorgt nog steeds voor een nested url, dus http://localhost:3000/projects/1/parts/1/tasks/9 maar je hoeft niet meer van die lange functienamen te gebruiken.
Vraag: Is dit de enige en goede manier? Ik kwam namelijk ook dit (door de officiele site geadviseerde) artikel tegen: http://weblog.jamisbuck.org/2007/2/5/nesting-resources
Ik zie echter niet in hoe zij als ze bijvoorbeeld part_path(4) doen weten welk project het is.
Models:
Project
Part
Task
Note
Alles hangt onder elkaar dus. Eerst had ik nested routes gebruikt, maar dat werkt zeer vervelend omdat je dan project_part_task_path e.d. gaat krijgen. Erg lange paden dus, de URL in de browser maakt me overigens niets uit. Het gaat om programmeer gemak.
Nu heb ik dit:
Ruby:
1
2
3
4
| map.resources :projects map.resources :parts, :path_prefix => '/projects/:project_id' map.resources :tasks, :path_prefix => '/projects/:project_id/parts/:part_id' map.resources :notes, :path_prefix => '/projects/:project_id/parts/:part_id/tasks/:task_id' |
Werkt opzich wel leuk, het zorgt nog steeds voor een nested url, dus http://localhost:3000/projects/1/parts/1/tasks/9 maar je hoeft niet meer van die lange functienamen te gebruiken.
Vraag: Is dit de enige en goede manier? Ik kwam namelijk ook dit (door de officiele site geadviseerde) artikel tegen: http://weblog.jamisbuck.org/2007/2/5/nesting-resources
Ik zie echter niet in hoe zij als ze bijvoorbeeld part_path(4) doen weten welk project het is.