Я возился с Railscast # 102 Auto-Complete Association в приложении Rails 3.1, которое я только что обновил до 3.2.
Когда я пытаюсь добавить хеш данных в текстовое поле
<%= f.text_field :category_name, data: {autocomplete_source: Category.order(:name).map(&:name)} %>
Rails генерирует ошибку компиляции, указывая на проблему с хешем данных.
Итак, я переписал хеш на
<%= f.text_field :category_name, 'data-autocomplete_source' => Category.order(:name).map(&:name)} %>
Это работает, но может кто-нибудь объяснить мне, есть ли различия между этими двумя подходами, о которых я должен знать.
Во-вторых, если я настрою функцию автозаполнения со статическим хешем значений
$(function() {
$('#post_category_name').autocomplete({
source: ['foo', 'food', 'four']
});
});
Автозаполнение работает. Но если я использую хэш данных:
$(function() {
$('#post_category_name').autocomplete({
source: $('#post_category_name').data('autocomplete_source')
});
});
автозаполнение не работает? В консоли возвращается
GET http://app.dev/post/4/foo%20food%20four?term=foo 404 (Not Found)
Это меня смущает, так как в запросе GET есть явно связанные термины. Это из-за того, что я настроил хэш данных, или здесь что-то еще происходит?
Спасибо за ваши идеи или предложения, чтобы помочь мне узнать, как все это работает.