我有一个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 。 那么我该如何解决这个问题呢。