[Routing] Ajouter un acces dans une ressources

Par skalimer0, il y a 2 ans


Bonjour,

Je suis en train de créer un plugin REDMINE qui utilise Rails.
Je cherche à rajouter un onglet supplémentaire sur une page existante mais il y a un fonctionnement vraiment bizarre de Rails que je n'explique pas qui m'empêche de faire ce que je veux.

La ressource est "time_entries" qui est accessible dans un projet ou directement à la racine du site, voiçi la table de routage de base de REDMINE sur cette ressource :

resources :projects resources :time_entries, :controller => 'timelog', :except => [:show, :edit, :update, :destroy] do get 'report', :on => :collection end end resources :time_entries, :controller => 'timelog', :except => :destroy do member do # Used when updating the edit form of an existing time entry patch 'edit', :to => 'timelog#edit' end collection do get 'report' get 'bulk_edit' post 'bulk_update' end end

Du coup j'ai fait le même principe que pour leur page "report" j'ai, dans mon plugin, créé ma page routes.rb

resources :projects do resources :time_entries, :controller => 'timelog', :except => [:show, :edit, :update, :destroy] do get 'charts', :on => :collection end end resources :time_entries, :controller => 'timelog', :except => :destroy do get 'charts', :on => :collection end

Dans le cadre d'un projet (typ. /projects/nom-du-projet/times_entries/charts) la table de routage fonctionne mais bizarrement sur la page du site (typ. /times_entries/charts) ça ne fonctionne pas.

A fonrce de trituré j'ai fini par ajouter directement mon "get 'charts', :on => :collectio"n dans le fichier routes.rb de REDMINE et la miracle ça passe. Même en effaçant toute la ressource de la table de routage de redmine et en la plaçant dans mon plugins avec ma nouvelle entrée "charts" ça fonctionne. J'ai l'impression que rails ne veut pas ajouter de nouvelles entrées à cette ressource après coup. Mais pourquoi dans ce cas ça fonctionne pour l'autre ?

bref je suis en quête d'idée et d'explication.
Merci d'avance pour toute information utile sur le sujet.

Aucune réponse