我正在开发我的第一个更大的Rails项目。它将是一个RESTful API。 我偶然发现的情况可以描述为: 我有模型'Person'和'Application'。Rails 3:两个独特的嵌套资源,一个模型
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”行动结束了,与同PARAMS。
如果前两个资源作为最后一个资源在只读操作方面发挥作用(例如,您可以只通过一个请求获取特定应用程序的管理器地址,那么GET /应用程序/ <ID> /所有者/地址')。那甚至是推荐的API设计?
非常感谢。
谢谢,最终我通过将关联本身视为资源来解决问题。我是新来的,编辑我的问题以包含我自己的解决方案是否很常见? T. – user1241530
我也是新来的:-)。但我认为这样做比保密更好。 – Renra
@ user1241530如果您有问题的有效答案,您可以添加一个单独的答案。不要在问题中包含答案,因为答案可能不是最好的答案。这样你的问题和答案就会有不同的选票。 –