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 là
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 ?

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à