Rails RESTful URL:特定类别下的所有帖子
Posted
技术标签:
【中文标题】Rails RESTful URL:特定类别下的所有帖子【英文标题】:Rails RESTful URL's: All Posts under certain Category 【发布时间】:2011-08-15 05:41:37 【问题描述】:目前我使用我的帖子#index 操作来显示所有帖子或按类别过滤它们以防指定:
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 分支),但嵌套路由和集合似乎都不适合这种情况。谢谢:)
【问题讨论】:
您真的需要“by_category”网址吗?这是rails 3吗? 【参考方案1】:resources :posts
resources :categories do |categories|
categories.resources :posts
end
然后你的网址:
/posts
- 所有帖子
/posts/:id
-某些帖子
/categories
- 所有类别
/categories/:id
- 特定类别
/categories/:id/posts
- 特定类别中的所有帖子。
【讨论】:
谢谢,我很困惑,它必须是那种“逆向”的自然方式;)以上是关于Rails RESTful URL:特定类别下的所有帖子的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ruby on Rails 应用程序中处理 RESTful URL 参数?
@controller在特定情况下的minitest是nil错误