2017-10-26 4 views
1

私は今、私はquery_paramtersに名前を付け、異なる/deep/pathともURLパスを定義する別のアプリにこのルートを移行しています=>/fooオーバーライドレールURLヘルパーメソッドグローバル

foo_pathとして私のアプリ全体で使用されているルートを持っていました過去にfoo_pathコントローラで使用されていたコントローラとは異なります。

いくつかのクエリパラメータ名に

を変換しながら、私はstackoverflowにいくつかの答えが、方法を見つけました...今では/deep/path代わりの観点呼ば/foo、コントローラーを返すようにfoo_pathメソッドをオーバーライドしていますよ彼らは私が現在使っているレールのバージョンである4.2.7のレールでもう使用できないようです。それはレールquery_parametersを操作することができるというながら4.2.7に/deep/path代わりの/fooを返すように

どのように私はすべてのアプリ間でfoo_pathメソッドをオーバーライドすることができますか?

+0

あなたは完全に別のアプリケーションを指すように 'foo_path'を変更しますか?もしそうなら、 'routes.rb'からそれを削除し、それを' ApplicationHelper'で定義することができます。 –

答えて

0

あなたがする必要があるのは名前付きルートを持つことです。

たとえば、古いパスがfooと表示され、それにはfoot_pathという名前でアクセスしたとします。

次に、routes.rbでこれを行うことができます。

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

foo_pathは今与えるその方法/bar

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

+0

私の質問で問題を単純化しようとしましたが、実際には '/ deep/path /'をいくつかの変換でクエリパラメータ名に返す 'foo_path'メソッドが必要です。その問題をよりよく反映するように質問を更新します。ありがとう! –