0

我使用auto_complete插件:的Rails 3.1 auto_complete插件给出奇怪的错误

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

我已经安装了宝石,并添加需要在我的清单文件行的指示:

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

有这样做,萤火虫给我这个错误信息:

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

和错误被追踪到这一行自动完成,rails.js:

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

我使用:

Rails 3.1.0 
Ruby 1.9.2 

任何人都经历一样吗?我刚刚安装并需要gem,甚至没有开始对控制器/视图进行更改。

任何帮助,将不胜感激!

+0

只是incase,你尝试重新启动你的服务器? – bricker

+0

是的,实际上几次;) – hade

+0

我不知道这是否有我需要的原型库。 – hade

回答

0

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

1

在文档准备就绪后,autocomplete-rails.js将搜索具有'data-autocomplete'属性的元素。

由于您没有在视图页面中添加自动完成字段,它显示为空。
您可以通过两种方式添加自动填写自动填写字段。

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 

没有你没有wrong.You正处于发展的中间。当您在视图页面中添加自动填充字段时,此问题将得到解决,如gem中所述。

欢呼:)

+0

感谢您的答案,但没有帮助。我也尝试添加东西到控制器和视图,但没有帮助。说真的,那个宝石是这样工作的吗?如果我的页面上没有特定的输入元素,它会给我一个Javascript错误?你确定?我认为任何宝石不应该故意使我的网站崩溃,如果它没有被使用。 – hade

+0

你是对的。我最近在我的应用程序中实现了这个gem,但是我只有jQuery库。我只是在我的应用程序中添加了原型,并得到了你在这里提到的确切的错误。所以它由于jQuery和原型之间的冲突library.Remove原型并检查。 –

+0

感谢您试用此功能。我不能直接删除原型,因为我有很多类实现了Prototype-way,但我会创建一个新项目并尝试找到解决方法。让我回复你,谢谢! – hade