Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 3个路由_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails 有条件地重命名Rails 3个路由

Ruby on rails 有条件地重命名Rails 3个路由,ruby-on-rails,routes,Ruby On Rails,Routes,出于市场营销的原因,我需要更新我们的应用程序的路由,以便在不接触控制器名称的情况下,将一个词替换为另一个词 例如: /foo_campaigns/1 becomes /bar_campaigns/1 /foo_campaigns/accounts_foo/1 becomes /bar_campaigns/accounts_bar/1 手动方式是: resources :foo_campaigns, :path => 'bar_campaigns' do

出于市场营销的原因,我需要更新我们的应用程序的路由,以便在不接触控制器名称的情况下,将一个词替换为另一个词

例如:

/foo_campaigns/1               becomes  /bar_campaigns/1
/foo_campaigns/accounts_foo/1  becomes  /bar_campaigns/accounts_bar/1
手动方式是:

resources :foo_campaigns, :path => 'bar_campaigns' do
  match :accounts_foo, :path => 'accounts_bar'
end

但我正在寻找一种被动的方法来实现这一点,每次我创建一个包含单词“foo”的新控制器或操作时,它的路径都是“bar”。

也许这是您可能希望在web服务器配置中执行的操作?类似于我正在使用Rack Rewrite gem进行一些重定向,但是对于这个任务,我需要实际使用本机路由。我需要200个响应(不是301s),并且不能允许较慢的响应。使用mod_rewrite,您可以更改应用程序看到的url,而无需重定向:好的,您也可以使用Rack rewrite。问题是,这似乎无法与控制器和操作本身进行通信,从而导致错误:“无法为FooController找到操作‘bar’”