Jquery TokenInput で Rails act_as_tggable_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 %>