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