gpt4 book ai didi

rest - 如何在浅嵌套路由中使用 ActiveResource?

转载 作者:行者123 更新时间:2023-12-03 20:17:30 29 4
gpt4 key购买 nike

我有一个 Rails 应用程序,它有一个带有 nested resource 的公司资源。员工。我使用的是浅层路由,所以为了运算符(operator)工,我的路由是:

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 操作?

最佳答案

我正在使用 Rails 3.0.9。您可以像这样设置前缀:

class Employee < ActiveResource::Base
self.prefix = "/companies/:company_id/"
end

进而
Employee.find(:all, :params => {:company_id => 99})

或者
e = Employee.new(:name => "Corey")
e.prefix_options[:company_id] = 1

它将用来自 prefix_options 的值替换 :company_id。

关于rest - 如何在浅嵌套路由中使用 ActiveResource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/889588/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com