无法使用Rails应用程序的jQuery令牌输入添加新令牌

时间:2018-06-11 17:50:24

标签: ruby-on-rails jquery-tokeninput

我有一个Rails应用程序,用户可以使用技能自动完成功能添加他们的技能。 让我们说用户已经添加了一项技能 - Javascript。添加此技能后,用户希望将Java添加为技能,但我无法解决此问题。

下面的代码示例

# app/model/skill.rb
class Skill < ApplicationRecord

  def self.tokens(query)
    query = query.upcase
    skills = where("name LIKE ?", "%#{query}%")
    if skills.empty?
      [{id: "<<<#{query}>>>", name: "New: \"#{query}\""}]
    else
      skills
    end
  end

  def self.ids_from_tokens(tokens)
    tokens.gsub!(/<<<(.+?)>>>/) {create!(name: $1).id}
    tokens.split(',')
  end
end

# app/controllers/skills_controller.rb
class SkillsController < ApplicationController
  before_action :authenticate_user!

  def index
    @skills = Skill.all
     respond_to do |format|
      format.json  { render :json => @skills.tokens(params[:q]) }
     end
  end

end

# app/assets/javascript/jquery_token_input.js
$(document).ready(function() {
$("#user_skills").tokenInput("/skills.json", {
    theme: "facebook",
    preventDuplicates: true,
    prePopulate: $('#user_skills').data('load'),
    hintText: "Type in for search Skills"
  });
});

问题是 - 用户首先添加 Javascript ,然后尝试添加 Java ,然后选择 Javascript 。 那么我该如何解决这个问题呢。

0 个答案:

没有答案