Я использую rails3-jquery-autocomplete (версия rails3-jquery-autocomplete (1.0.2)) в приложении Rails 3.0.10 с Mongoid. Драгоценный камень работает как шарм, у меня есть только одна маленькая проблема. Буду признателен за любую помощь в ее решении.
Я в основном пытаюсь передать идентификатор результата автозаполнения в параметрах. В настоящее время это то, что я делаю.
В контроллере:
class FeaturesController < ApplicationController
autocomplete :feature, :name
end
По виду:
= autocomplete_field_tag :replacement_id, ' ', autocomplete_feature_name_features_path, :id_elements => '#replacement_id'
Файлы маршрутов
resources :features do
get :autocomplete_feature_name, :on => :collection
end
Автозаполнение работает нормально. Единственное, что вместо передачи идентификатора объекта автозаполнения (используя: id_elements => '#replacement_id'), он передает текст.
Вот что я получаю в параметрах:
Parameters: {"feature"=>{"status"=>"Replaced"}, "replacement_id"=>"Property agreements", "commit"=>"update_status"}
В настоящее время значением «replace_id» является «Соглашения о собственности», то есть текст автозаполнения.
Я искал похожие проблемы. Я обнаружил, что в списке проблем на Github были похожие проблемы в предыдущих версиях гема здесь и здесь . Они уже решены, поэтому, возможно, что-то не так с моей настройкой выше.
Большое спасибо.
====== ====== UPDATE
упс! заметил опечатку в виде помощника! Должно быть: id_element вместо: id_elements. В это время трюк, т. Е. Он передает идентификатор объекта в параметрах:
например. в параметрах:
"replacement_id"=>"4e915ec88a812e2740000353"
Однако он вставляет идентификатор объекта в текстовое поле автозаполнения вместо текста автозаполнения. Можно найти способ обойти это.
====== UPDATE ========
Чтобы обойти невозможность отображения текста автозаполнения в текстовом поле (в данный момент он показывает идентификатор), я внес следующие изменения:
Просмотр: я использовал опцию: update_elements
= autocomplete_field_tag :replacement_id, '', autocomplete_feature_name_features_path, :update_elements => {:id => '#input#replacement_id', :name => 'input#replacement_id'}
Контроллер:
autocomplete :feature, :name, :display_value => :replacement_name, :extra_data => [:name]
: имя - это метод, который я поместил в модель:
def replacement_name
"#{self.name}"
end
При этом текст отображается в текстовом поле автозаполнения, но теперь идентификатор выбранного объекта не передается в параметрах, а вместо текста (как он был изначально).