使用act-as-taggable-on和jQuery-tokenInput插件,用于多个可标记字段

时间:2016-03-01 04:57:43

标签: jquery ruby-on-rails ruby jquery-tokeninput act-as-taggable-on

我在使用带有act-as-taggable-on gem的令牌输入插件时遇到问题,无法为自定义tag_list保存标签。现在,acts_as_taggable_on :skills中有User.rb,所以我想在skill_list中添加标签。目前,我在参数中看到了服务器日志skill_tokens"=>"161",因此我认为该表单正在发送标记ID,但是当我在控制台中尝试user.skillsuser.taggings时,它赢了什么都没有。

我不确定我做错了什么。我需要你的帮助。 Anythings有帮助,谢谢!

  

User.rb

has_many :taggings, as: :taggable, dependent: :destroy
has_many :tags, through: :taggings

attr_accessor :skill_tokens

acts_as_tagger
acts_as_taggable
acts_as_taggable_on :skills
  

UserController中

def user_params
params.require(:user).permit(
  :skill_tokens,
  :skill_list: []
)
end

def load_tags
@user = User.new
@tags = ActsAsTaggableOn::Tag.all
respond_to do |format|
  format.html
  format.json { render json: tokens(params[:q]) } # get result from tokens method
end
end

# return search result for tags
def tokens(query)
 @tags = ActsAsTaggableOn::Tag.all
 @tags = @tags.where('name Ilike ?', "%#{params[:q]}%")
 if @tags.empty?
   [{ id: "<<<#{query}>>>", name: "Add: \"#{query}\"" }]
 else
   @tags
 end
end

def load_categories
  @categories = Category.all
end
  

这是我的jQuery代码

$('#user_skill_tokens').tokenInput '/signup.json ' tokenValue: 'user[skill_list][]' theme: 'facebook'

  

这是苗条的形式

 = f.label :skill_tokens, "Tag List"
 = f.text_field :skill_tokens

1 个答案:

答案 0 :(得分:1)

问题解决了。我在我的咖啡脚本中添加了一些代码,如下所示:

$('#user_skill_tokens').tokenInput '/signup.json '
  tokenValue: 'name'
  theme: 'facebook