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 参数?

Rails:如何访问 RESTful 助手?

仅当用户选择rails表单中的特定选项时,如何显示字段

@controller在特定情况下的minitest是nil错误

Sencha Touch - RESTful load() 特定实例 URL 问题(商店/模型)

Express / Node中3个相关类别的RESTful路由结构