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

另一个死灵,但与 pavling 的解决方案相比,有一种更干燥友好的方式来做到这一点

get :autocomplete_category_name, controller:"application"

我试图(昨天)将它移动到应用程序控制器以尝试更好地重用代码,而不是将其绑定到特定的控制器。直到今天我才意识到这是没有意义的,因为用于应答此调用的控制器将是与渲染视图的控制器完全不同的对象。

于 2013-10-17T07:09:42.063 回答
1

使用 Rails 4,您必须使用 get,而不是 match...

# routes.rb
get '/autocomplete_category_name', to: 'application#autocomplete_category_name', as: :autocomplete_category_name
于 2013-12-21T15:13:54.103 回答
0

尝试类似的东西

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

在 Rails 4 中,使用这个:

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

你有'autocomplete_category_name_path'到你的链接

于 2018-05-01T09:05:22.107 回答