So verwende ich this gem für Autovervollständigung. Wie im Abschnitt Usage angegeben, müssen wir eine autocomplete :classname, :method
Zeile im Controller des Modells hinzufügen, dessen Attribut wir versuchen, automatisch zu vervollständigen. So zum Beispiel (extrahiert aus dem docs):Autovervollständigung von Tag-Namen bei Verwendung von "acts_as_taggable_on"?
Modell
class Brand < ActiveRecord::Base
end
create_table :brand do |t|
t.column :name, :string
end
-Controller
class ProductsController < Admin::BaseController
autocomplete :brand, :name
end
Routen
resources :products do
get :autocomplete_brand_name, :on => :collection
end
Ich verwende den Edelstein acts_as_taggable_on für meine Tags. Jedes Tag hat ein name
Attribut, das ich versuche, automatisch zu vervollständigen. Jetzt bin ich nicht sicher, welcher Klassenname in der autocomplete :classname, :method
Zeile in TagsController verwendet werden soll. Der Name der Klasse ist ActsAsTaggableOn :: Tag, aber ich erhalte eine Fehlermeldung, wenn ich, dass:
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
Routen
resources :tags, param: :name, only: [:index, :show] do
get :autocomplete_ActsAsTaggableOn::Tag_name, :on => :collection
end
Fehler nach rake routes
TypeError: :ActsAsTaggableOn is not a class/module
Ich habe sowohl tag
als auch tags
als Klassenname versucht. Sie haben keinen Fehler zurückgegeben, aber sie haben einfach nicht funktioniert. Jede Hilfe wird geschätzt!
Können Sie den genauen Code Ihres Controllers posten? Die Spalte in ': ActsAsTaggableOn' sieht seltsam aus. –
@MarekTakac Ich habe den Beitrag mit TagsController aktualisiert. Der ProductsController ist eigentlich nur ein Beispiel-Controller, der aus den gem docs extrahiert wurde, die ich zur Verfügung gestellt habe, um anzuzeigen, wo die 'Autocomplete'-Zeile gehen soll – Arif