Rails 3.1 auto_complete插件给出了奇怪的错误

时间:2011-10-07 10:49:48

标签: ruby-on-rails ruby-on-rails-3 jquery-autocomplete rails-3.1

我正在使用auto_complete插件:

https://github.com/crowdint/rails3-jquery-autocomplete

我已按照说明安装了gem并在我的清单文件中添加了require行:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require autocomplete-rails
//= require prototype
//= require prototype_ujs

这样做后,firebug给了我这个错误信息:

$("input[data-autocomplete]") is null

并在autocomplete-rails.js中将此错误追溯到此行:

$(document).ready(function(){$("input[data-autocomplete]").railsAutocomplete()})...

我正在使用:

Rails 3.1.0
Ruby 1.9.2

有没有人经历过同样的事?我刚刚安装并需要gem,甚至没有开始对控制器/视图进行更改。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

autocomplete-rails.js将在文档准备好后搜索具有属性“data-autocomplete”的元素。

由于您未在视图页面中添加自动完成字段,因此显示为null 您可以通过两种方式添加自动完成的自动字段。

1.使用form_for

form_for @product do |f|
  f.autocomplete_field :brand_name, autocomplete_brand_name_products_path
end  

这将生成一个html

<input type="text" data-autocomplete="products/autocomplete_brand_name">

2.使用form_tag

form_tag 'some/path'
  autocomplete_field_tag 'address', '', address_autocomplete_path, :size => 75
end

你没有做错任何事。你正处于开发阶段。当你在视图页面中添加自动填充文件时,这个问题将会解决,如gem所述。

欢呼:)

答案 1 :(得分:0)

不要与Jquery同时使用Prototype库。不幸的是,这只是我能想到的解决方案。我尝试了noConflict语句并以不同的顺序加载库。我现在接受这个答案,因为没有任何其他解决方案。