0

以前我用过:

data: {autocomplete_source: categories_path} %>

指向类别控制器中的动作索引。一切正常!

现在我在类别控制器中创建了一个新动作

def search
@categories = Category.order(:name).where("name like ?", "%#{params[:term]}%")

render json: @categories.map(&:name)
end

并试图指出这一行动:

data: {autocomplete_source: search_categories_path} %>

但我得到错误:

undefined local variable or method `search_categories_path' for #<#<Class:0x51844c8>:0x5375820>

我做错了什么?谢谢!

我的路线:

     products GET    /products(.:format)            products#index
          POST   /products(.:format)            products#create
 new_product GET    /products/new(.:format)        products#new
edit_product GET    /products/:id/edit(.:format)   products#edit
  product GET    /products/:id(.:format)        products#show
          PUT    /products/:id(.:format)        products#update
          DELETE /products/:id(.:format)        products#destroy
 categories GET    /categories(.:format)          categories#index
          POST   /categories(.:format)          categories#create
new_category GET    /categories/new(.:format)      categories#new
edit_category GET    /categories/:id/edit(.:format) categories#edit
 category GET    /categories/:id(.:format)      categories#show
          PUT    /categories/:id(.:format)      categories#update
          DELETE /categories/:id(.:format)      categories#destroy

路线:

Autorails::Application.routes.draw do
resources :products


resources :categories do
 collection do
    :search
 end
end
4

3 回答 3

3

检查rake routes该路线是否确实以该名称存在。有关更多信息,请参阅http://guides.rubyonrails.org/routing.html#path-and-url-helpers

于 2013-07-30T13:58:12.200 回答
2

你应该有这样的东西在你的routes.rb

resources :categories do
  collection do
    get :search
  end
end
于 2013-07-30T13:56:21.623 回答
0

你应该做这样的事情

resources :categories do
  collection do
    get :search
  end
end
于 2013-07-30T14:11:11.153 回答