Ruby on rails 一个Rails资源的多个路径
在Rails中是否可以向同一资源发送多个路径 示例:将“/foo bars”和“/foo_bars”路由到Ruby on rails 一个Rails资源的多个路径,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,在Rails中是否可以向同一资源发送多个路径 示例:将“/foo bars”和“/foo_bars”路由到资源:foo_bars这可能会起作用: resources :foo_bars resources :foo_bars, path: "foo-bars", as: "foo-bars" as还将为您的路径/url帮助程序别名,省略它,它要求您使用一组帮助程序(最初定义的那些)。也许您更喜欢永久重定向?浏览器将缓存它,并且以后可能会遇到较少的维护问题(1 path=1 resource是r
资源:foo_bars
这可能会起作用:
resources :foo_bars
resources :foo_bars, path: "foo-bars", as: "foo-bars"
as
还将为您的路径/url帮助程序别名,省略它,它要求您使用一组帮助程序(最初定义的那些)。也许您更喜欢永久重定向?浏览器将缓存它,并且以后可能会遇到较少的维护问题(1 path=1 resource是rails程序员通常认为理所当然的事情)
这(未测试)应提供多组路由 有没有办法在不定义两次资源的情况下做到这一点?使用嵌套资源,这将很快成为cumbersome@bbozo的回答/注释可能是在您的案例中执行嵌套资源路由的最佳方式这将是完美的,但是否有一种方法可以这样做,以便嵌套资源也可以跟随?不确定是否可以在
routes.rb中执行此操作,但可以肯定的是,您可以在控制器中的before筛选器上执行此操作,如果request.path.以?(“/foo\u bars/”)开头,您可以在before筛选器上执行此操作,请求重定向并返回false以停止筛选器链,我将在明天扩展我的答案。如果您不知道如何执行此操作,您还可以使用重定向资源<代码>资源:文章资源:故事,到:重定向('/articles')
get '/stories/:name', to: redirect('/articles/%{name}')
resources :foo_bars, :foo-bars, controller: :foo_bars do
# nested
end