1

我正在开发一个使用标签的应用程序,为此,我使用 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
4

0 回答 0