我正在做我在 Rails 中的第一个更大的项目。它将是一个 RESTful API。我偶然发现的情况可以描述如下:我有模型'Person'和'Application'。
class Person < ActiveRecord::Base
has_many :managed_applications, :class_name => "Application", :foreign_key => "manager_id"
has_many :owned_applications, :class_name => "Application", :foreign_key => "owner_id"
# other associations
has_many :adresses
end
class Application < ActiveRecord::Base
belongs_to :manager, :class_name => "Person"
belongs_to :owner, :class_name => "Person"
end
我应该如何设计我的控制器和路由,以便我有以下不言自明的资源工作?
/applications/<id>/owner
/applications/<id>/manager
/people/<id>
问题是,当嵌套单一所有者和管理器资源在“复数”应用程序资源下时,所有路由都以相同的“PeopleController”操作结束,并具有相同的参数。
一个好处是,如果前两个资源在只读操作方面充当最后一个资源(例如,您可以通过一个请求检索特定应用程序的管理器的地址,'GET /applications/<id >/所有者/地址')。这甚至是推荐的 API 设计吗?
非常感谢。