Cra*_*ker 8 rest resources routes nested ruby-on-rails
在我的Rails应用程序中,我在两个实体之间有一个相当标准的has_many关系.A Foo为零或更多Bars; 一个Bar属于一个Foo.Foo和Bar都由单个整数ID值标识.这些值在其各自的实例中是唯一的.
Bar的存在依赖于Foo:拥有没有Foo的Bar是没有意义的.
有两种方法可以RESTful引用这些类的实例.给定Foo.id为"100"且Bar.id为"200":
通过他们自己的"顶级"URL路由引用每个Foo和Bar,如下所示:
参考栏通过其Foo实例作为嵌套资源:
我喜欢#2中的嵌套路由,因为它更接近地表示实体之间的实际依赖关系.然而,它确实似乎涉及很多额外的工作,收益很少.假设我知道一个特定的Bar,我不需要被告知特定的Foo; 我可以从Bar本身那里得到它.事实上,我可能应该在任何地方验证路由Foo(这样你就不能做/ foo/150/bar/200,假设Bar 200没有分配给Foo 150).最终,我看不出这给我带来了什么.
那么,是否存在支持或反对这两种路由方案的其他论据?
我主要关注特定Bars的RESTful更新/显示/删除.为了获得特定Foo的Bar列表(通常是Rails中的"索引"动作),有一个嵌套路由,如/ foo/100/bar,这是完全合理的.这条路线上的页面可以很容易地链接到/ bar/x和/ foo/100/bar/x.