全局覆盖rails url helper方法

时间:2017-10-26 06:12:53

标签: ruby-on-rails ruby ruby-on-rails-4 actionpack

我在我的应用中使用的路线为foo_path => /foo

现在,我将此路线迁移到另一个应用程序,该应用程序以不同的方式定义网址路径/deep/path,并且不同地命名query_paramters控制器过去使用的foo_path

我希望覆盖foo_path方法,以便现在在视图中调用时返回/deep/path而不是/foo,控制器...同时转换一些查询参数名称

我在stackoverflow找到了一些答案,但他们使用的方法似乎不再适用于rails 4.2.7 这是我目前正在使用的rails版本。< / p>

如何在所有应用中覆盖foo_path方法,以便在 rails 4.2.7 中返回/deep/path而不是/foo,同时可以进行操作query_parameters

1 个答案:

答案 0 :(得分:0)

您需要做的是拥有一条命名路线。

例如,假设您的旧路径已标识为foo,并且您将其视为foot_path

然后你可以在routes.rb中做这样的事情。

'/bar', to: 'controller#action', as: :foo

这样foo_path现在会给/bar

参考:http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers