Tôi có ứng dụng Rails có tài nguyên Công ty với một nhân viên nested resource. Tôi đang sử dụng định tuyến nông, vì vậy để thao tác Nhân viên, các tuyến đường của tôi là:Làm thế nào để sử dụng ActiveResource với các tuyến đường được làm tổ?
GET /employees/1
PUT /employees/1
DELETE /employees/1
POST /companies/1/employees
Làm cách nào để tạo, đọc, cập nhật và hủy nhân viên sử dụng ActiveResource?
Để tạo nhân viên, tôi có thể sử dụng:
class Employee < ActiveResource::Base
self.site = "http://example.com/companies/:company_id"
end
Nhưng nếu tôi cố gắng làm:
e=Employee.find(1, :params => {:company_id => 1})
tôi nhận được một 404 vì con đường/công ty /: company_id/nhân viên /: id không được xác định khi sử dụng các tuyến đường nông.
Để đọc, chỉnh sửa và xóa nhân viên, tôi có thể sử dụng:
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
Nhưng sau đó dường như không thể là một cách để tạo nhân viên mới, do thiếu những công ty đường bên ngoài.
Một giải pháp là xác định các lớp Employee và Employee riêng biệt, nhưng điều này có vẻ quá phức tạp.
Tôi làm cách nào để sử dụng một lớp Employee trong ActiveResource để thực hiện tất cả bốn hoạt động CRUD?
Làm việc lớn, ngoại trừ tôi cần phải sử dụng "/ công ty/# {prefix_options [: company_id]} /#{self.class.collection_name},xml "hoặc POST không được hiểu là XML. –
nên sử dụng 'self.prefix ="/companies /: company_id/"' thay vì ghi đè 'collection_path' – tybro0103