jQuery自动完成失败,Rails中的json响应

拉维·卡什雅普(Ravi Kashyap)

我正在尝试将jquery-ui自动完成功能实现到Rails应用程序中。我在我的Rails应用程序中加入了以下模型。

class Skill < ApplicationRecord
  has_many :user_skills
  has_many :users, through: :user_skills
  validates :name, presence: true, uniqueness: true
end

我正在尝试对技能名称进行自动完成。我在家庭控制器中创建了以下操作。

def skills_autocomplete
  @skills = Skill.order(:name).map(&:name)
  render json: @skills
end

我将此动作定义为以下路线:

get 'skills_autocomplete' => "home#skills_autocomplete"

以下是jquery自动完成的代码段:

$(function() {
    var availableSkills = 'skills_autocomplete.json';
    $('#skills').autocomplete({
      source: availableSkills
    });
  });

但是通过这种实现方式,当在搜索框中键入任何字母时,这将在自动完成框中显示所有技能。另一方面,如果我使用以下实现:

$(function() {
    var availableSkills = [".NET","ASP.NET","AWS","Android","Angular 1","Angular 2+","Bitbucket","Block Chain","C","C#","C++","CSS3","DevOpps","Django","Docker","Express Js","GIT","GITLAB","GraphQL","HTML5","Heroku","IoT","Ionic","JSON","Java","Javascript","Jquery","Jquery UI","MEAN Stack","Material Design","Mongo DB","Node Js","PHP + MySQL","PHP Laravel","Postgresql","Python","React Native","Ruby","Ruby on Rails","Sinatra","Symentic UI","Twitter Bootstrap","Wordpress","XML"]
  $('#skills').autocomplete({
    source: availableSkills
  });
});  

自动完成功能正常。谁能帮我在这里做错什么。

拉维·卡什雅普(Ravi Kashyap)

在查看了许多选项之后,我观察到该数组作为JSON响应返回,未由自动完成处理。所以我做了这样的事情,现在自动完成工作正常。

$(function() {
  var skills = 'skills_autocomplete.json';
  availableSkills = [];
  $.getJSON(skills, function(data){
    $.each(data, function(index, value){
      availableSkills.push(value);
    });
  });
  $('#skills').autocomplete({
    source: availableSkills
  });
});

现在问题解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章