入れ子になったリソースEmployeeを持つ Company リソースを持つ Rails アプリケーションがあります。私は浅いルーティングを使用しているので、従業員を操作するには、私のルートは次のとおりです。
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})
浅いルートが使用されている場合、ルート /companies/:company_id/employees/:id が定義されていないため、404 が返されます。
従業員の読み取り、編集、および削除には、次を使用できます。
class Employee < ActiveResource::Base
self.site = "http://example.com"
end
しかし、会社の外部ルートがないため、新しい従業員を作成する方法はないようです。
解決策の 1 つは、CompanyEmployee クラスと Employee クラスを別々に定義することですが、これは非常に複雑に思えます。
ActiveResource で単一の Employee クラスを使用して、4 つの CRUD 操作すべてを実行するにはどうすればよいですか?