gpt4 book ai didi

ruby-on-rails - 简化/RESTify我的路线(2)!

转载 作者:行者123 更新时间:2023-12-04 06:37:03 27 4
gpt4 key购买 nike

我有办法获取我的图像列表,这里有相应的

1/根据作为参数发送的过滤器获取图像

images/list_filtered?order=<order>&page=<page>&per_page=<count_per_page>&user_id=<user_id>&device_id=<device_id>

2/获取 user_id 的用户关注的人的图片:news feed
images/news_feed?order=<order>&page=<page>&per_page=<count_per_page>&user_id=<user_id>&device_id=<device_id>

3/边界内的图像(即 map 内)
images/inside?order=<order>&page=<page>&per_page=<count_per_page>&user_id=<user_id>&device_id=<device_id>&lat1=<lat1>&lng1=<lng1>&lat2=<lat2>&lng2=<lng2>

但是如果图像是资源,我们不能在 routes.rb 中这样定义它(那么 list_filtered、news_feed 或 inside 将被视为 ID)

所以我看到了 2 个解决方案:

1/3 个图像资源之外的自定义路由,打破了这些的 REST 方法:
images_list/filtered
images_list/news_feed
images_list/inside

2/filtered,news_feed和inside也是get参数,我在 index里面调度采取类似 self.send(params[:type]) 的行动

两种解决方案都很丑陋,想找到正确的方法,有什么想法吗?

最佳答案

假设您也想要所有正常的资源路由:

resources :images do
collection do
get 'filtered'
get 'news_feed'
get 'inside'
end
end

然后 rake routes将输出:
 filtered_images GET    /images/filtered(.:format)  {:action=>"filtered", :controller=>"images"}
news_feed_images GET /images/news_feed(.:format) {:action=>"news_feed", :controller=>"images"}
inside_images GET /images/inside(.:format) {:action=>"inside", :controller=>"images"}
images GET /images(.:format) {:action=>"index", :controller=>"images"}
POST /images(.:format) {:action=>"create", :controller=>"images"}
new_image GET /images/new(.:format) {:action=>"new", :controller=>"images"}
edit_image GET /images/:id/edit(.:format) {:action=>"edit", :controller=>"images"}
image GET /images/:id(.:format) {:action=>"show", :controller=>"images"}
PUT /images/:id(.:format) {:action=>"update", :controller=>"images"}
DELETE /images/:id(.:format) {:action=>"destroy", :controller=>"images"}

http://guides.rubyonrails.org/routing.html#adding-collection-routes

关于ruby-on-rails - 简化/RESTify我的路线(2)!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748338/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com