我在使用带有可标记宝石的令牌输入插件来保存自定义tag_list的标签时遇到问题。现在,我已经acts_as_taggable_on :skills
User.rb
,所以我想为skill_list添加标签。目前,我在参数中看到服务器日志skill_tokens"=>"161"
,所以我相信表单正在发送标签 ID,但是当我尝试在控制台中user.skills
或user.taggings
时,它不会显示任何内容。
不确定我做错了什么。我需要你的帮助。什么都有帮助,谢谢!
用户.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
用户控制器
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
问题解决了。我在咖啡脚本中添加了一些代码,如下所示:
$('#user_skill_tokens').tokenInput '/signup.json '
tokenValue: 'name'
theme: 'facebook