所以我使用this gem进行自动完成。如使用部分所述,它要求我们在模型的控制器中添加autocomplete :classname, :method
行,其属性我们正尝试自动完成。例如(从文档中提取):
模型
class Brand < ActiveRecord::Base
end
create_table :brand do |t|
t.column :name, :string
end
控制器
class ProductsController < Admin::BaseController
autocomplete :brand, :name
end
路线
resources :products do
get :autocomplete_brand_name, :on => :collection
end
我使用acts_as_taggable_on gem作为我的代码。每个代码都有一个name
属性,我试图自动完成该属性。现在,我不确定在TagsController的autocomplete :classname, :method
行中使用什么类名。该类的名称是ActsAsTaggableOn :: Tag,但是当我使用它时出错:
TagsController
class TagsController < ApplicationController
autocomplete :ActsAsTaggableOn::Tag, :name
def index
@tags = ActsAsTaggableOn::Tag.all
end
def show
@tag = ActsAsTaggableOn::Tag.find_by(name: params[:name])
@posts = Post.tagged_with(@tag.name).paginate(page: params[:page], per_page: 10).order('created_at DESC')
end
end
路线
resources :tags, param: :name, only: [:index, :show] do
get :autocomplete_ActsAsTaggableOn::Tag_name, :on => :collection
end
rake routes
TypeError: :ActsAsTaggableOn is not a class/module
我尝试了tag
和tags
作为班级名称。然而,他们并没有回复错误,但他们根本没有工作。任何帮助表示赞赏!
答案 0 :(得分:1)
product:
pattern: /{_locale}/product/{id}
defaults: { _controller: FLYBookingsBundle:Post:product }
requirements:
_locale: en|fr
defaults: { _locale: en }
应该做的诀窍:)。或者尝试autocomplete ActsAsTaggableOn::Tag, :name
。
问题是你使用的是符号而不是常量 - 类名是常量......