您如何将动作路由到Rails 3中的应用程序控制器?
-
23-10-2019 - |
题
我正在使用GEM Rails3-Jquery-autocomplete,并且没有问题,但是我现在已经将自动完整的表单移至应用程序模板中,因此,应用程序控制器现在正在处理Ajax调用,因此我的路线已从以下方式更改:
home/autocomplete_category_name
现在需要将房屋拆除,并从以下路上走:
home_autocomplete_category_name_path
至:
autocomplete_category_name_path
有人有什么想法吗?仍在学习铁轨的来龙去脉,所以这对我来说是一个死胡同。
谢谢。
解决方案
URL不会直接映射到 ApplicationController
- 只有它的子类。
您需要将电话转移到 autocomplete
进入另一个控制器。表单的位置不应有所作为,只要您在定义自己的时通过正确的路径 text_field
其他提示
旧帖子,但是公认的答案是错误的。尽管它的精神是正确的 - 您可能应该将方法移至更合适的控制器;但是如果你 坚持 关于Application_controller.rb中的方法
# routes.rb
match '/some_route', to: 'application#some_route', as: :some_route
...将路由到Application_Controller.rb中的“ Some_Route”方法。
另一个NECRO,但与铺路的解决方案相比,有一种更干燥的方式可以做到这一点
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'的链接
不隶属于 StackOverflow