我正在使用带有 Jquery TokenInput 的 Railsacts_as_taggable_on 插件,但是当输入标签并按下空格键(将分隔符更改为空格)时,不会创建令牌云。另外,我的 Json 输出文件看起来有点奇怪,它没有输出正确的数字 ID。
JSON 输出
{"id":"Funny","name":"Funny"},{"id":"Basketball","name":"Basketball"}
用户控制器
def tags
@tags = ActsAsTaggableOn::Tag.where("tags.name LIKE ?", "%#{params[:q]}%")
respond_to do |format|
format.json { render :json => @tags.collect{|t| {:id => t.name, :name => t.name }}}
end
end
用户模型
class User < ActiveRecord::Base
attr_accessible :name, :tag_list
acts_as_taggable_on :tags
end
Javascript 文件
$(function() {
$("#user_tags").tokenInput("/users/tags.json", {
prePopulate: $("#user_tags").data("pre"),
preventDuplicates: true,
noResultsText: "No results, needs to be created.",
animateDropdown: false
});
});
看法
<h2>Enter new user:</h2>
<%= form_for @user do |f| %>
Name: <%= f.text_field :name %><br />
Tags: <%= f.text_field :tag_list, :id => "user_tags",
"data-pre" => @user.tags.map(&:attributes).to_json %>
<%= f.submit %><br />
<% end %>