使这个api' restful'
的正确方法是什么?我有一个位置,
GET location/:id
PUT location/:id
规格已经改变,现在这个位置可以有某些类型'客户端可以更新。一个要求是客户获得允许的类型(可以是固定列表中的一个 - 即[' urban',' wilderness',' private',等。])所有地点。这不是嵌套资源,它是位置表上的一列。我已经实施了,
GET location/types_allowed
有更好的RESTFUL方式吗?
另一个例子,一个位置可以有邻居,所以我做了GET locations/neighbors
。我无法理解除CRUD和嵌套资源之外的REST的细微差别。谢谢!
答案 0 :(得分:1)
而不是列types_allowed
,而是创建type
资源,关系可以像
location.rb
belongs_to :type
type.rb
has_many :locations
并且你的路线文件将是
resources :type do
resources :location
end
答案 1 :(得分:1)
我强烈建议不要命名模型/列"输入"。这往往会破坏铁轨内部的神奇物品,你甚至不知道它们会在你尝试之前存在。它是"未记录的功能之一" :P
我反而建议阅读"单表继承"或"多态性"弄清楚这些中的任何一个是否适合你。
如果不是......那就说出一些东西" kind"而不是"类型"因为它会以这种方式更好地工作。
对于RESTful资源......你真的无法超越Rails指南。如果您按照routing guide :(以及所有其他的),您将了解如何执行RESTful资源