Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 一个Rails资源的多个路径_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 一个Rails资源的多个路径

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

在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是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