You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails中如何修改resources路由URL且保留原URL辅助方法?

解决方案:用path选项实现URL变更但保留原路由辅助方法

你想要的效果其实Rails路由本身就支持,只需要给resources :posts加上path参数即可,之前的写法没找对关键点~

正确的路由代码

resources :posts, path: 'articles'

效果说明

这样配置后:

  • 生成的URL路径会变成/articles、/articles/:id、/articles/:id/edit等,完全符合你要替换成articles的需求
  • 所有原有的posts_*系列URL辅助方法都会保留,调用posts_url会输出http://your-domain/articles,edit_post_path(1)会输出/articles/1/edit,和你期望的一致

额外补充(如果需要更换控制器)

如果你不仅要改URL,还想让路由指向ArticlesController而不是默认的PostsController,可以再加上controller参数:

resources :posts, path: 'articles', controller: 'articles'

这样路由会把请求转发给ArticlesController的对应动作,同时依然保留posts_*的辅助方法。

你可以运行rails routes命令来验证路由配置,会看到路由的Path列是/articles开头,而Name列依然是posts、post等,这就对应了你要的辅助方法名称。

内容的提问来源于stack exchange,提问作者CafeHey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:09:55