我有一个Rails应用程序,具有一个名为Company的资源,并带有嵌套资源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错误,因为路由/companies/:company_id/employees/:id未定义。
要阅读、编辑和删除员工,我可以使用:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
由于公司的外部路由缺失,似乎没有办法创建新的员工。
一种解决方案是定义不同的CompanyEmployee和Employee类,但这似乎过于复杂。
我如何在ActiveResource中使用单个Employee类执行所有四个CRUD操作?
self.prefix = "/companies/:company_id/"
代替覆盖collection_path
。 - tybro0103