У меня есть приложение Rails, которое имеет ресурс компании с сотрудником nested resource. Я использую неглубокую трассировку, чтобы манипулировать Employee, мои маршруты:Как использовать ActiveResource с неглубокими вложенными маршрутами?
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/сотрудников /: ид не определяется, когда используются мелкие маршруты.
Чтобы читать, редактировать и удалять сотрудников, я могу использовать:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Но не кажется, что должен быть способ для создания новых сотрудников, из-за отсутствия компаний внешнего маршрута.
Одним из решений было бы определить отдельные классы CompanyEmployee и Employee, но это кажется слишком сложным.
Как я могу использовать один класс Employee в ActiveResource для выполнения всех четырех операций CRUD?
работал прекрасно, за исключением мне нужно использовать «/ компании/# {prefix_options [: company_id]} /#{self.class.collection_name},xml "или POST не интерпретировался как XML. –
должен использовать 'self.prefix ="/companies /: company_id/"' вместо переопределения 'collection_path' – tybro0103