Problème de routes et cas de conscience

Bonjour,
Je vous explique mon problème, j’ai plusieurs type d’entreprise qui
pointe
vers des contacts, et un contacts une seul entreprise, voici les routes
:

map.namespace :address_book do |address_book|
address_book.root :controller => :address_book

address_book.resources :customers,
                        :has_many => [:contacts]


address_book.resources :providers,
                        :has_many => [:contacts]

address_book.resources :suppliers,
                        :has_many => [:contacts]

end

Jusqu’ici tous vas bien.

Je souhaitait ajouter une méthode destroys à mon contrôleur contacts et

impossible de spécifier l’entreprise dont il dépent…

Il me fallait donc se type de route :

map.namespace :address_book do |address_book|
address_book.root :controller => :address_book

address_book.resources :customers,
                        :has_many => [:contacts => {:collection =>

{:destroys => :post}}]

address_book.resources :providers,
                        :has_many => [:contacts => {:collection =>

{:destroys => :post}}]

address_book.resources :suppliers,
                        :has_many => [:contacts => {:collection =>

{:destroys => :post}}]

end

pour pouvoir faire ce type de lien :

url_for({:controller => “contacts”, :action => :destroys, :provider_id
=>
@address_book_customer.id}) # =>
address_book/providers/1/contacts/destroys
url_for({:controller => “contacts”, :action => :destroys, :provider_id
=>
@address_book_provider.id}) # =>
address_book/customers/2/contacts/destroys
url_for({:controller => “contacts”, :action => :destroys, :provider_id
=>
@address_book_supplier.id}) # =>
address_book/suppliers/3/contacts/destroys

J’ai donc modifier le codes sources de rails (resources.rb) pour ce
faire.

Est ce une bonne idée ? Y a t il une meilleur solution ?