我有一个 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 操作?