Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动完成不';我似乎无法使用ruby on rails_Javascript_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 4_Autocomplete - Fatal编程技术网

Javascript 自动完成不';我似乎无法使用ruby on rails

Javascript 自动完成不';我似乎无法使用ruby on rails,javascript,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,autocomplete,Javascript,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Autocomplete,我试图在一个文本字段上实现自动完成搜索,在我的视图文件index.html.erb中有以下代码 <%= form_tag search_path, method: :get do %> <p> <%= text_field_tag :query, params[:query], :id => 'autocomplete' %> <%= submit_tag "Search", name: nil %> </p> <% en

我试图在一个文本字段上实现自动完成搜索,在我的视图文件index.html.erb中有以下代码

<%= form_tag search_path, method: :get do %>
<p>
<%= text_field_tag :query, params[:query], :id => 'autocomplete'  %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
<%= form_tag search_path, method: :get do %>
 <p>
  <%= text_field_tag :query, params[:query], :id => 'autocomplete', data: {autocomplete_source: univ_autocomplete_url}  %>
  <%= submit_tag "Search", name: nil %>
 </p>
<% end %>
控制器如下所示

def autocomplete
results = Univ.query_matches(params[:term]) 
render :json => results, :callback => params[:callback] 
end
jQuery ->
$("#autocomplete").autocomplete ({
source: function(request,response) {
jQuery.ajax({
url: "http://localhost:3000/univ/autocomplete.json",
dataType: "jsonp",
data: {
    term: request.term
},
success: function(data){
var rows: [];
for( var i = 0; i< data.length; i++){
    rows.push({data[i].query,value:data[i].query});
}
response(rows);
}
});
}
});
我在js文件夹的application.js文件中包含了jQuery ui。但是,我看不到在我的视图中运行autocomplete

im为此使用的jQuery如下所示

def autocomplete
results = Univ.query_matches(params[:term]) 
render :json => results, :callback => params[:callback] 
end
jQuery ->
$("#autocomplete").autocomplete ({
source: function(request,response) {
jQuery.ajax({
url: "http://localhost:3000/univ/autocomplete.json",
dataType: "jsonp",
data: {
    term: request.term
},
success: function(data){
var rows: [];
for( var i = 0; i< data.length; i++){
    rows.push({data[i].query,value:data[i].query});
}
response(rows);
}
});
}
});
jQuery->
$(“#自动完成”)。自动完成({
来源:功能(请求、响应){
jQuery.ajax({
url:“http://localhost:3000/univ/autocomplete.json",
数据类型:“jsonp”,
数据:{
期限:request.term
},
成功:功能(数据){
var行:[];
对于(变量i=0;i
有人能告诉我哪里出了问题吗

谢谢

在index.html.erb中

<%= form_tag search_path, method: :get do %>
<p>
<%= text_field_tag :query, params[:query], :id => 'autocomplete'  %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
<%= form_tag search_path, method: :get do %>
 <p>
  <%= text_field_tag :query, params[:query], :id => 'autocomplete', data: {autocomplete_source: univ_autocomplete_url}  %>
  <%= submit_tag "Search", name: nil %>
 </p>
<% end %>
在application.js中:-

$(document).ready(function() {
 $( "#autocomplete" ).autocomplete({
    source: $( "#autocomplete" ).data('autocomplete-source')
 });
});
如果在表单中键入两个字符时搜索字段,则应将其写为或可根据需要进行更改:-

$(document).ready(function() {
 $( "#autocomplete" ).autocomplete({
    minLength: 2,
    source: $( "#autocomplete" ).data('autocomplete-source')
 });
});
Add-in routes.rb:-

get "univ/autocomplete"
注意:-应该有一个名为univ的控制器,或者在控制器中添加此自动完成方法,并检查路由。然后在数据:{autocomplete\u来源:univ\u autocomplete\u url}中使用新路由更改路由univ\u autocomplete\u url

如果在其他控制器中添加了自动完成方法,则将路由.rb更改为:-

get "controller_name/autocomplete"

我得到一个错误作为未定义的局部变量或方法“univ\u autocomplete\u url”。我必须包含名为autocomplete的视图吗?请在行url:“”中检查您在ajax中使用的/univ/autocomplete的路由,并进行更改。我检查了路由,但没有看到任何与univ/autocomplete.json匹配的路由。早些时候,我试图实现一个例子,所以我不确定我哪里做错了。知道代码的哪一部分需要更新吗?我更新了帖子中所做的更改。但是搜索字段仍然不起作用:/抱歉,我把它包括在你的答案中