我想创建一个搜索文章的路由
应该能够添加页面的大小
这样的
'/post/1/article/search?size=200&page=1
这样会好吗?
get '/post/:id/article/search/:size/:page
我可以直接用rails创建端点吗?
namespace :api do
namespace :v1 do
resources :posts do
resources :articles
get /search/:size/:page
应该这样做:
namespace :api do
namespace :v1 do
resources :posts do
resources :articles do
collection do
get "/search/:size/:page", action: :search, defaults: { size: 200, page: 1 }
end
end
end
end
end
在您的控制器中,您将能够通过:params[:size]
和params[:page]
访问。
指出👀
- 如果只需要作为常规参数
?size=200&page=1
发送,则不需要在路由本身中定义参数。"querystring"总是被发送到Rails控制器:
collection do
get :search
end
defaults
不是强制性的,但在这种情况下,我认为这是一个好主意,因为您将始终有这些参数的回退值。- 您可以在官方指南中阅读更多详细信息:
- ,"集合;路线:https://guides.rubyonrails.org/routing.html adding-collection-routes
- ,non-resourceful"路线:https://guides.rubyonrails.org/routing.html non-resourceful-routes