公开嵌套路由的特定操作

发布于 2024-11-26 11:20:36 字数 253 浏览 4 评论 0原文

以此作为上下文示例: 帖子有_很多条评论 评论属于_帖子

我有一条如下所示的路线:

resources :posts do
  resources :comments
end

如何创建公开 comments#index 的路线?

一个示例用例是......我想在页面上列出系统中的所有评论。本质上,当用户点击 /comments 时,使用评论资源就好像它没有嵌套一样,

谢谢!

Using this as an example contexted:
Post has_many comments
Comment belongs_to post

I have a route that looks like:

resources :posts do
  resources :comments
end

How do i create a route that exposes comments#index?

An example use case would be... I want to list ALL comments in the system on a page. Essentially using the comments resource as if it's not nested when a user hits /comments

thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏夜暖风 2024-12-03 11:20:36

试试这个。

resources :posts do
  resources :comments, :except => :index
end
match 'comments' => 'comments#index', :as => :comments

也就是说,我通常会避免这样的路由,因为我喜欢整洁的 RESTful 路由文件,但有时这是没有帮助的。

第二个选项:

resources :posts do
  resources :comments, :except => :index
  get :comments, :on => :collection
end

在第二个选项中,您需要从 comments 控制器中删除 index 操作,并在 posts 控制器中创建 comments 操作。

Try this.

resources :posts do
  resources :comments, :except => :index
end
match 'comments' => 'comments#index', :as => :comments

That said, I usually look to avoid routes like this because I like a tidy RESTful routes file, but sometimes it can't be helped.

Second option:

resources :posts do
  resources :comments, :except => :index
  get :comments, :on => :collection
end

In the second option, you'd want to remove the index action from the comments controller and create a comments action in your posts controller.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文