Плагин Rails 3.1 auto_complete выдает странную ошибку - PullRequest
0 голосов
/ 07 октября 2011

Я использую плагин 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

Сделав это, firebug выдает мне следующее сообщение об ошибке:

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

, и эта ошибка прослеживается до этой строки в autocomplete-rails.js:

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

Я использую:

Rails 3.1.0
Ruby 1.9.2

Кто-нибудь испытывал то же самое?Я только установил и потребовал драгоценный камень и даже не начал делать изменения к контроллеру / представлению.

Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 07 октября 2011

autocomplete-rails.js будет искать элемент с атрибутом data-autocomplete после того, как документ будет готов.

Поскольку вы не добавили поле автозаполнения на странице просмотра, оно показывает нулевое значение.
Вы можете добавить авто поле с автозаполнением двумя способами.

1.Использование формы для

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 'some/path'
  autocomplete_field_tag 'address', '', address_autocomplete_path, :size => 75
end

Ничего плохого вы не сделали. Вы находитесь в процессе разработки. Эта проблема будет решена, когда вы добавите автозаполнение, заполненное на странице просмотра, как описано в геме.

ура :) 1017 *

0 голосов
/ 27 октября 2011

Не используйте библиотеку Prototype одновременно с Jquery.К сожалению, это было единственное решение, которое я мог придумать.Я пробовал операторы noConflict и загружал библиотеки в другом порядке.Сейчас я принимаю этот ответ, потому что других решений не было.

...