簡體   English   中英

如何將操作路由到Rails 3中的應用程序控制器?

[英]How do you route an action to the application controller in Rails 3?

我正在使用gem rails3-jquery-autocomplete並且沒有任何問題,但是我現在已經將自動完成表單移動到應用程序模板中,因此ajax調用現在由應用程序控制器處理,因此我的路由已從以下更改:

home/autocomplete_category_name

現在需要刪除主頁並從以下路徑:

home_autocomplete_category_name_path

至:

autocomplete_category_name_path

有人有任何想法嗎? 還在學習Rails的來龍去脈,所以現在這對我來說是個死胡同。

謝謝。

老帖子,但接受的答案是錯誤的。 雖然它的精神是正確的 - 你應該把你的方法轉移到一個更合適的控制器; 但是如果你堅持在application_controller.rb中使用該方法

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

...將路由到application_controller.rb中的'some_route'方法。

URL不直接映射到ApplicationController - 只是它的子類。

您需要將調用autocomplete移動到另一個控制器。 只要您在定義text_field時傳遞正確的路徑,表單的位置就不會產生影響

與pavling的解決方案相比,還有一種更加干燥的方法可以做到這一點

get :autocomplete_category_name, controller:"application"

我正在嘗試(昨天)將其移動到應用程序控制器,以嘗試更好地重用代碼,而不是將其綁定到特定的控制器。 直到今天我才意識到這沒有任何意義,因為用於回答此調用的控制器將成為控制器呈現視圖的完全不同的對象。

使用Rails 4,你必須使用get,而不是匹配...

# routes.rb
get '/autocomplete_category_name', to: 'application#autocomplete_category_name', as: :autocomplete_category_name

嘗試類似的東西

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

在Rails 4中,使用:

get 'application/autocomplete_category_name', as: 'autocomplete_category_name'

您有'autocomplete_category_name_path'鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM