5

我正在尝试按照有关如何在此处实现 jquery-tokeninput 的说明进行操作:

如何使用 jquery-Tokeninput 和 Acts-as-taggable-on

我正在尝试将标签附加到“帖子”。我可以使用表单中的文本字段来创建新标签。但是,javascript 根本不会触发。就好像没有任何代码存在。我没有收到任何错误消息。文本字段仅充当普通文本字段,没有触发 javascript 事件。可能是什么问题?这是我的相关代码:

后模型

attr_accessible :tag_list
acts_as_taggable_on :tags

职位控制器

def tags 
    query = params[:q]
    if query[-1,1] == " "
      query = query.gsub(" ", "")
      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(&:attributes) }
    end
  end

routes # 它必须找到 tags.json 或者在我的情况下是 /products/tags.json get "posts/tags" => "posts#tags", :as => :tags

应用程序.js

$(function() {
  $("#post_tags").tokenInput("/posts/tags.json", {
    prePopulate:       $("#post_tags").data("pre"),
    preventDuplicates: true,
    noResultsText:     "No results, needs to be created.",
    animateDropdown:   false
  });
});

出于沮丧,我还创建了一个 posts.js.coffee 文件,只是为了看看这是否是问题所在:

$ ->
  $("#post_tags").tokenInput "/posts/tags.json",
    prePopulate: $("#post_tags").data("pre")
    preventDuplicates: true
    noResultsText: "No results, needs to be created."
    animateDropdown: false

发布表单视图

<%= f.label :tag_list %>
<%= f.text_field :tag_list, :id => "post_tags", "data-pre" => @post.tags.map(&:attributes).to_json %>

我在这里错过了什么吗?任何帮助将不胜感激!!!

谢谢!!

4

0 回答 0