16

私は gem rails3-jquery-autocomplete を使用していますが、問題はありませんでしたが、オートコンプリート フォームをアプリケーション テンプレートに移動したため、ajax 呼び出しがアプリケーション コントローラーによって処理されるようになったため、ルートが次のように変更されました。

home/autocomplete_category_name

次に、ホームを削除し、次のパスを取得する必要があります。

home_autocomplete_category_name_path

に:

autocomplete_category_name_path

誰かアイデアはありますか?まだRailsの詳細を学んでいるので、これは私にとって行き止まりです。

ありがとう。

4

6 に答える 6

34

古い投稿ですが、受け入れられた答えは間違っています。その精神は正しいですが、おそらくメソッドをより適切なコントローラーに移動する必要があります。ただし、application_controller.rbにメソッドを含めることを主張する場合

# routes.rb
match '/some_route', to: 'application#some_route', as: :some_route

...application_controller.rb の「some_route」メソッドにルーティングします。

于 2013-03-21T17:20:11.423 に答える
8

URL は直接マップされApplicationControllerず、そのサブクラスのみにマップされます。

autocomplete呼び出しを別のコントローラーに移動する必要があります。フォームの場所は、定義時に正しいパスを渡している限り、違いはありません。text_field

于 2011-01-24T11:35:34.227 に答える
7

別のnecroですが、pavlingのソリューションと比較して、これを行うためのよりDRYフレンドリーな方法があります

get :autocomplete_category_name, controller:"application"

私は(昨日)それをアプリケーションコントローラーに移動して、コードをより適切に再利用し、特定のコントローラーに結び付けないようにしようとしていました。とにかく、この呼び出しに応答するために使用されるコントローラーは、ビューをレンダリングするコントローラーとはまったく異なるオブジェクトになるため、今日になって初めて、それが意味をなさないことに気付きました..

于 2013-10-17T07:09:42.063 に答える
0

のようなものを試してください

match "home/autocomplete_category_name", "home#autocomplete_category_name", :as => "autocomplete_category_name"
于 2011-01-24T10:59:34.720 に答える