この投稿で概説されているフレームワークを実装しました: jquery-Tokeninput と Acts-as-taggable-on を使用する方法には多少の困難があります。これは、適切なテーマと ajax 検索を事前入力する限りは機能しますが、新しいタグを入力すると、テキスト領域がフォーカスを失うとすぐに削除されます。何が間違っているのかわかりません。これが私の関連コードの一部です:
ユーザー モデル (タグ付けを行います):
class User < ActiveRecord::Base
[...]
# tagging
acts_as_tagger
アイテムモデル (タグを受け入れる):
class Item < ActiveRecord::Base
attr_accessible :title, :tag_list
#tagging functionality
acts_as_taggable_on :tags
アイテムコントローラー:
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
私のフォームの部分で:
<%= f.input :tag_list, :label => "Tags", :input_html => { :class => "text_field short", "data-pre" => @item.tags.map(&:attributes).to_json }, :hint => "separate tags by a space" %>
私のルート:
get "items/tags" => "items#tags", :as => :tags
resources :items
【あと少し!!!】
フォーム上の js [注: 要素の ID は動的に割り当てられます]:
<script type="text/javascript">
$(function() {
$("#item_tag_list").tokenInput("/art_items/tags", {
prePopulate: $("#item_tag_list").data("pre"),
preventDuplicates: true,
crossDomain: false,
theme: "facebook"
});
});
</script>