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]
-~----------~----~----~----~------~----~------~--~---