タグで動作するアプリケーションを開発しています。そのためにjquery tokeninputとacts_as_taggable_onを使用していますが、いくつかの変更を保存すると、既存のタグを番号で再度保存すると、タグは名前ではなくID番号を表示し始めます名前の通り。
これはデータ プリ エラーまたはマッピング エラーだと思います。
私からしてみれば:
= form_for @profile, :html=> {:class => 'custom'} do |f|
= f.text_field :skill_list, :id => "profile_skills", "data-pre" => @profile.skills.to_json
コントローラ:
def skills
query = params[:q]
if query[-1,1] == " "
query = query.gsub(" ", "")
ActsAsTaggableOn::Tag.find_or_create_by_name(query)
end
@skills = ActsAsTaggableOn::Tag.all
@skills = @skills.select { |v| v.name =~ /#{query}/i }
respond_to do |format|
format.json { render :json => @skills.map{|t| {:id => t.name, :name => t.name }}}
end
終わり
アプリケーション.js:
$(function(){
$(document).foundation();
$("#profile_skills").tokenInput("/profiles/skills.json", {
prePopulate: $("#profile#skills").data("pre"),
preventDuplicates: true,
hintText: "Ingresa alguna habilidad",
noResultsText: "No se encontraron tags, crea uno con espacio",
searchingText: "Buscando...",
animateDropdown: true,
theme: 'facebook'
}); });
ルート:
get "profiles/skills" => "profiles#skills", :as => :profiles_skills