Wie verwende ich JQuery-Tokeninput in Rails?Jquery

JQuery-Programmierung
Anonymous
 Wie verwende ich JQuery-Tokeninput in Rails?

Post by Anonymous »

Ich versuche, einem Formular in meiner App ein Tokeninput-JQuery-Feld hinzuzufügen, das es Benutzern ermöglicht, Statusaktualisierungen zu veröffentlichen. Ich möchte, dass Benutzer Werke (ein separates Modell) an die Statusaktualisierung anhängen können. Ich verwende das Juwel act_as_taggable_on und meine Abfrage gibt an, dass der Tag-Kontext „funktioniert“. Das Feld lädt jedoch keine Suchergebnisse.
Ich habe tatsächlich ein zweites Token-Eingabefeld, das es Benutzern ermöglicht, Tags an die Statusaktualisierung anzuhängen, ähnlich wie diese Website Tags zum Anhängen an dieses Problemticket verwendet. Es funktioniert gut! Ich versuche, diese Funktionalität zu spiegeln, um den Kontext für die Suche im Werksmodell anzugeben, und habe Probleme mit der Implementierung.
Irgendwelche Ideen? Wir würden uns über Ihre Zeit und Unterstützung sehr freuen! Hier ist der relevante Code:
Post-Modell

Code: Select all

attr_accessible :content, :tag_list, :work_list

acts_as_taggable_on :tags
acts_as_taggable_on :works

Post-Controller (aktualisiert)

Code: Select all

def work_list
query = params[:q]
@work_list = ActsAsTaggableOn::Tag.includes(:taggings).where("taggings.context = 'works'").where("tags.name ILIKE ?", "%#{params[:q].downcase.to_s}%").all
@work_list = @work_list.select { |v| v.name =~ /#{query}/i }
respond_to do |format|
format.json { render :json => @work_list.map{|w| {:id => w.name, :name => w.name }}}
end
end

def tags
query = params[:q]
if query[-1,1] == " "
query = query.gsub(" ", "")
ActsAsTaggableOn::Tag.find_or_create_by_name(query)
end

#Do the search in memory for better performance

@tags = ActsAsTaggableOn::Tag.all
@tags = @tags.select { |v| v.name =~ /#{query}/i }
respond_to do |format|
format.json{ render :json => @tags.map{|t| {:id => t.name, :name => t.name }}}
end
end
Formular

Code: Select all

 "post_work_list",  "data-pre" => @post.work_list.map(&:attributes).to_json %>
Javascript

Code: Select all

$ ->
$("#post_tags").tokenInput "/posts/tags.json",
prePopulate: $("#post_tags").data("pre")
preventDuplicates: true
noResultsText: "No results, press space key to create a new tag."
animateDropdown: false

$ ->
$("#post_work_list").tokenInput "/posts/work_list.json",
prePopulate: $("#post_work_list").data("pre")
preventDuplicates: true
noResultsText: "No results"
animateDropdown: false
Routen

Code: Select all

get "posts/tags" => "posts#tags", :as => :tags
get "posts/work_list" => "posts#work_list", :as => :work_list

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post