私はthis宝石を使って自動完成しています。 使用法セクションで述べたように、自動完成しようとしている属性のモデルのコントローラにautocomplete :classname, :method
行を追加する必要があります。そう例えば、(ドキュメントから抽出された):acts_as_taggable_on gemを使用しているときのタグ名の自動補完?
モデル
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の宝石を使用しています。各タグにはname
という属性がありますが、これは自動完成しようとしています。今、私はTagsControllerのautocomplete :classname, :method
行にどのようなクラス名を使用するか分かりません。クラスの名前はActsAsTaggableOn ::タグですが、私が使用している場合、私はエラーを取得すること:
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
をクラス名として試しました。しかし、彼らはエラーを返さなかったが、彼らは単に動作しませんでした。どんな助けもありがとう!
コントローラの正確なコードを投稿できますか? ':ActsAsTaggableOn'の列が異常です。 –
@MarekTakac TagsControllerで投稿を更新しました。 ProductsControllerは、実際に 'autocomplete'行がどこにあるのかを示すために用意した宝石文書から抽出されたコントローラの例です。 – Arif