首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简化/恢复我的路由(2)!

简化/恢复我的路由(2)!
EN

Stack Overflow用户
提问于 2011-01-20 22:32:15
回答 1查看 129关注 0票数 2

我有办法获得我的图片列表,这里有相应的

1/根据参数发送的滤镜获取图片

代码语言:javascript
复制
images/list_filtered?order=<order>&page=<page>&per_page=<count_per_page>&user_id=<user_id>&device_id=<device_id>

2/获取user _id的用户关注的人的图片:

代码语言:javascript
复制
images/news_feed?order=<order>&page=<page>&per_page=<count_per_page>&user_id=<user_id>&device_id=<device_id>

3/图像内部边界(即地图内部)

代码语言:javascript
复制
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>

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

因此,我看到了两种解决方案:

1/ 3的自定义路由超出了图像资源,打破了REST方法:

代码语言:javascript
复制
images_list/filtered
images_list/news_feed
images_list/inside

2/ filtered、news_feed和inside也是get参数,我使用类似self.send(params[:type])的内容在index操作内部分派

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-21 00:12:40

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

代码语言:javascript
复制
resources :images do
  collection do
    get 'filtered'
    get 'news_feed'
    get 'inside'
  end
end

然后rake routes将输出:

代码语言:javascript
复制
 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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4748338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档