14

我正在使用gem rails3-jquery-autocomplete,並且沒有任何問題,但是現在我已將自動填充表單移動到應用程序模板中,因此現在應用程序控制器正在處理ajax調用,所以我的路由已更改來自:如何將動作路由到Rails 3中的應用程序控制器?

home/autocomplete_category_name 

,現在需要有家庭刪除和路徑從:

home_autocomplete_category_name_path 

到:

autocomplete_category_name_path 

有人有什麼想法嗎?還在學習Rails的細節,所以現在對我來說這是一個死衚衕。

謝謝。

+0

最好是發佈相關路線的當前RoR實際代碼以及您的目標網址。 – jschorr 2011-01-24 03:44:00

+0

此外,通過在根項目目錄中的控制檯鍵入`rake routes`來包含您當前的路線。 – raidfive 2011-01-24 07:56:25

回答

9

網址不直接映射到ApplicationController - 只有它的子類。

您需要將呼叫轉移到另一個控制器的autocomplete。表單的位置應該沒有什麼區別,只要您在定義您的時候通過了正確的路徑text_field

+0

我已經完成了完全按照你所說的,這不是一個雄辯的解決方案,但它確實工作,謝謝! – 2011-01-25 00:02:59

+3

如果你想要的話,可以路由到ApplicationController - 僅僅反對約定 – Pavling 2013-03-21 17:18:19

0

嘗試像

match "home/autocomplete_category_name", "home#autocomplete_category_name", :as => "autocomplete_category_name" 
27

舊帖子,但接受的答案是錯誤的。雖然它的精神是正確的 - 你應該將你的方法轉移到更合適的控制器上;但如果你對具有application_controller.rb

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

...將路由方法在application_controller.rb的「some_route」的方法堅持

6

另一個死靈但是還有一個更幹友好的方式來做到這一點,比起pavling的解決方案

get :autocomplete_category_name, controller:"application" 

我試圖(昨天)將其移動到應用程序控制器,試圖更好,而不是重用代碼將其綁定到特定的控制器。直到今天,我才意識到這是沒有道理的,因爲用來回答這個調用的控制器將是一個完全不同的對象,無論如何渲染視圖的控制器..

1

使用Rails 4,你必須使用get,not匹配...

# routes.rb 
get '/autocomplete_category_name', to: 'application#autocomplete_category_name', as: :autocomplete_category_name 
相關問題