У меня есть приложение Rails, у которого есть ресурс компании с вложенным ресурсом Employee. Я использую неглубокую маршрутизацию, поэтому для управления Employee мои маршруты:
GET /employees/1
PUT /employees/1
DELETE /employees/1
POST /companies/1/employees
Как я могу создавать, читать, обновлять и уничтожать сотрудников с помощью ActiveResource?
Чтобы создать сотрудников, я могу использовать:
class Employee < ActiveResource::Base
self.site = "http://example.com/companies/:company_id"
end
Но если я попытаюсь сделать:
e=Employee.find(1, :params => {:company_id => 1})
Я получаю 404, потому что маршрут/компании/: company_id/employees/: id не определен, когда используются мелкие маршруты.
Чтобы читать, редактировать и удалять сотрудников, я могу использовать:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Но тогда, похоже, не существует способа создать новых сотрудников из-за отсутствия внешних маршрутов компаний.
Одним из решений было бы определить отдельные классы CompanyEmployee и Employee, но это кажется слишком сложным.
Как я могу использовать один класс Employee в ActiveResource для выполнения всех четырех операций CRUD?