Ruby on Rails - 如何为同一操作添加第二条路线?

Posted

技术标签:

【中文标题】Ruby on Rails - 如何为同一操作添加第二条路线?【英文标题】:Ruby on Rails - How to add a second route for the same action? 【发布时间】:2021-08-12 17:50:03 【问题描述】:

我有这条路线:

  resources :posts do
    resources :comments
  end

帖子可以是显示在以下位置的“用户消息”: /帖子

帖子可以是显示在以下位置的“新闻”: /新闻

如何在 routes.rb 文件中创建“/news” url 并在 post 控制器中传递参数以了解我想要的帖子类型?

【问题讨论】:

如果您需要以不同的方式处理用户帖子和新闻,那么也许它们不应该在不同的控制器中?您可以将公共逻辑提取到服务对象或其他东西中,然后从两个控制器中调用。 但是@SergioTulentsev,作者不会将整个应用程序硬塞到一个控制器中! “不应该”->“应该”。几次改写我的评论时错过了那个:) 【参考方案1】:

这样你可以声明不能使用resources声明的路由。

get '/news' => 'posts#index', as: :news

【讨论】:

以上是关于Ruby on Rails - 如何为同一操作添加第二条路线?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails:不使用 find 时如何为 SQL 清理字符串?

Ruby on Rails 路由解析

Ruby on rails - 两次引用同一个模型?

如何在 ruby​​ on rails 中获取控制器和操作列表?

Ruby on Rails Ransack Datetime 到日期搜索

Ruby on Rails Scaffolding:同一张表的两个外键