我的行动类似于:
def show
@p = Post.find(params[:id])
respond_to do |format|
format.html
format.js
end
end
我得到一个网址:
http://localhost:3000/post/1
http://localhost:3000/post/2
http://localhost:3000/post/3
.
.
.
我希望为此相同的操作设置不同的版本,例如:
http://localhost:3000/v1/post/1
http://localhost:3000/v1/post/2
http://localhost:3000/v1/post/3
.
.
.
我该怎么做?
我已经看了一下这个资源:
https://github.com/bploetz/versionist
http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast
答案 0 :(得分:1)
我想直接的方法是使用命名空间,例如V1 :: PostsController,V2 :: PostsController等
请参阅http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
但是,如果您只是在制作API,那么最好使用https://github.com/intridea/grape,因为它已经提供了版本控制支持。
答案 1 :(得分:0)
在路线文件中,您可以添加类似
的内容 map '/v1/post/:id' => 'yourcontroller#show'
这将是您现有的resources :post
或其他内容的补充。