1

foo_path=>としてアプリ全体で使用されるルートがありました/foo

現在、このルートを別のアプリに移行しています。このアプリは、URL パスを異なる方法で定義し、コントローラーによって以前に使用されていた/deep/path名前も異なるものにしています。query_paramtersfoo_path

メソッドをオーバーライドして、ビューで呼び出されたときの代わりにコントローラーをfoo_path返すようにしようとしています...いくつかのクエリパラメーター名を変換している間/deep/path/foo

私はstackoverflowでいくつかの答えを見つけましたが、彼らが使用する方法は、私が現在使用しているRailsバージョンであるRails 4.2.7では機能していないようです。

Rails 4.2.7の代わりに操作できるようにfoo_path、すべてのアプリでメソッドをオーバーライドするにはどうすればよいですか?/deep/path/fooquery_parameters

4

1 に答える 1

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

于 2017-10-26T06:17:34.923 に答える