我正在尝试按照有关如何在此处实现 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 %>
我在这里错过了什么吗?任何帮助将不胜感激!!!
谢谢!!