У меня есть приложение Rails, у которого есть ресурс Company с вложенным ресурсом Сотрудник. Я использую мелкую маршрутизацию, поэтому, чтобы манипулировать сотрудником, мои маршруты:
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, потому что маршрут / companies /: company_id / employee /: id не определяется при использовании мелких маршрутов.
Чтобы читать, редактировать и удалять сотрудников, я могу использовать:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Но тогда, похоже, нет способа создать новых сотрудников из-за отсутствия внешнего маршрута компаний.
Одним из решений было бы определение отдельных классов CompanyEmployee и Employee, но это кажется слишком сложным.
Как я могу использовать один класс Employee в ActiveResource для выполнения всех четырех операций CRUD?