Rails RESTful URL:特定类别下的所有帖子

时间:2011-04-29 04:36:07

标签: ruby-on-rails routing restful-url friendly-url

目前我使用我的帖子#index action来按类别显示所有帖子或过滤器:

PostsController:

def index
  @posts = Post.all(:order => "created_at DESC")
  @posts = @posts.by_category(params[:category_id]) #Custom named_scope
end

路线:

map.connect '/post/by_category/:category_id', :controller => :posts, :action => :index
map.resources :users

所以 / posts 会返回所有帖子 / posts / by_category / 1 会返回所有帖子属于1类

我想知道是否有办法做更多 RESTful ,并且可能会得到一些漂亮的url_paths。

我已经阅读了指南(使用最新的2.3 Rails分支),但是对于这种情况,嵌套路线和集合似乎都不合适。谢谢:))

1 个答案:

答案 0 :(得分:6)

resources :posts
resources :categories do |categories|
  categories.resources :posts
end

然后你的网址:

/posts - 所有帖子

/posts/:id - 某篇文章

/categories - 所有类别

/categories/:id - 特定类别

/categories/:id/posts - 特定类别中的所有帖子。