J'ai une application Rails qui a une ressource d'entreprise avec un employé nested resource. J'utilise le routage peu profonde, afin de manipuler les employés, mes itinéraires sont:Comment utiliser ActiveResource avec des itinéraires imbriqués peu profonds?
GET /employees/1
PUT /employees/1
DELETE /employees/1
POST /companies/1/employees
Comment puis-je créer, lire, mettre à jour et détruire les employés utilisant ActiveResource?
Pour créer des employés, je peux utiliser:
class Employee < ActiveResource::Base
self.site = "http://example.com/companies/:company_id"
end
Mais si j'essaie de faire:
e=Employee.find(1, :params => {:company_id => 1})
-je obtenir un 404 parce que la route/entreprises /: company_id/employés /: id n'est pas défini lorsque des itinéraires peu profonds sont utilisés.
Pour lire, modifier et supprimer des employés, je peux utiliser:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Mais il ne semble pas être un moyen de créer de nouveaux employés, en raison de l'absence des sociétés de route extérieure.
Une solution consisterait à définir des classes CompanyEmployee et Employee séparées, mais cela semble trop complexe. Comment puis-je utiliser une seule classe Employee dans ActiveResource pour effectuer les quatre opérations CRUD?
travaillé très bien, sauf que je devais utiliser «/entreprises/# {prefix_options [: company_id]} /#{self.class.collection_name},xml "ou le POST n'a pas été interprété comme XML. –
doit utiliser 'self.prefix ="/companies /: company_id/"' au lieu de surcharger 'collection_path' – tybro0103