Possiedo un'applicazione Rails che dispone di una risorsa aziendale con un dipendente nested resource. Sto utilizzando superficiale di routing, in modo di manipolare i dipendenti, i miei percorsi sono:Come utilizzare ActiveResource con percorsi nidificati poco profondi?
GET /employees/1
PUT /employees/1
DELETE /employees/1
POST /companies/1/employees
Come posso creare, leggere, aggiornare e distruggere dipendenti che utilizzano ActiveResource?
Per creare dipendenti, posso usare:
class Employee < ActiveResource::Base
self.site = "http://example.com/companies/:company_id"
end
Ma se provo a fare:
e=Employee.find(1, :params => {:company_id => 1})
ho ottenere un 404 perché il percorso/aziende /: company_id/dipendenti /: id non è definito quando vengono utilizzati percorsi poco profondi.
di leggere, modificare e cancellare i dipendenti, posso usare:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Ma poi non sembra essere un modo per creare nuovi dipendenti, a causa della mancanza delle compagnie percorso esterno.
Una soluzione potrebbe essere quella di definire classi separate di CompanyEmployee e Employee, ma ciò sembra eccessivamente complesso.
Come è possibile utilizzare una singola classe Employee in ActiveResource per eseguire tutte e quattro le operazioni CRUD?
lavorano alla grande, ad eccezione avevo bisogno di usare "/ aziende/# {prefix_options [: company_id]} /#{self.class.collection_name},xml "o il POST non è stato interpretato come XML. –
dovrebbe usare 'self.prefix ="/companies /: company_id/"' invece di sovrascrivere 'collection_path' – tybro0103