JSON автозаполнение неправильный URL в рельсах - PullRequest
2 голосов
/ 27 апреля 2019

Я использую автозаполнение jquery в нескольких местах моего приложения, в том числе в форме с URL:

http://www.fonsiuris.net/fr/administration/actes/nouveau/122

Форма приложения / представления / администрация / акты имеет это поле:

<%= lieux.text_area :place, :value =>  params[:acte] ? @place["place"] : "", class:"field_places", data: {autocomplete_source: lieux_enum_path} %>

в route.rb:

 get 'lieux/enum' => 'lieux#enum'

Это самый первый URL моих маршрутов. Rb

Однако, когда я набираю буквы в текстовой области, например, «Доу» с функцией автозаполнения, он указывает на этот URL:

http://www.fonsiuris.net/fr/biblios/trouver?utf8=✓&ch_bib[aut_titre_cherche]=Douai&commit.x=6&commit.y=2&term=Dou

и когда я набираю более одного термина, этот термин добавляется в URL следующим образом:

/fr/biblios/trouver?utf8=%E2%9C%93&ch_bib%5Baut_titre_cherche%5D=Douai&commit.x=5&commit.y=11&term=Paris

(в качестве поисковых терминов добавлены и Дуэ, и Париж)

Он должен указывать на этот URL:

http://www.fonsiuris.net/lieux/enum?term=Dou

Что дает правильный результат. Я использую один и тот же код с тем же javascript в нескольких местах моего приложения, и он отлично работает во всех других местах!

Выход rails routes | grep enum:

                          lieux_enum GET    /lieux/enum(.:format)                                          lieux#enum
                       motclefs_enum GET    /motclefs/enum(.:format)                                       motclefs#enum
                 actes_enum_acte_mot GET    /actes/enum_acte_mot(.:format)                                 actes#enum_acte_mot
                    biblios_enum_rec GET    /biblios/enum_rec(.:format)                                    biblios#enum_rec
        administration_archives_enum GET    /administration/archives/enum(.:format)                        administration/archives#enum_archive
         administration_biblios_enum GET    (/:locale)/administration/biblios/enum(.:format)               administration/biblios#enum_titres {:locale=>/fr|en|nl|it/}
         administration_auteurs_enum GET    (/:locale)/administration/auteurs/enum(.:format)               administration/auteurs#enum_noms {:locale=>/fr|en|nl|it/}

Что я пробовал до сих пор:

  • Реоганизация маршрутов. Rb
  • переписывает form.html.erb, чтобы он содержал точно такой же код, как и в других местах моего приложения, где это работает
  • везде используется один и тот же javascript
  • переустановите jquery и jquery-ui: теперь используйте cdn вместо gem - ничего не получается разница.

Я не знаю, с чего начать, чтобы решить эту проблему.

Ответы [ 2 ]

5 голосов
/ 01 мая 2019

Я собираюсь дать немного более четкий ответ, основанный на том, что я получил от @ thiebo.

<%= lieux.text_area :place, :value =>  params[:acte] ? @place["place"] : "",
     class:"field_places", data: {autocomplete_source: lieux_enum_path} %>

Это поле появляется дважды с тем же именем поля. Удалите поле без элемента автозаполнения в атрибуте данных.

2 голосов
/ 29 апреля 2019

Ради потомков проблема не имела никакого отношения к рельсам, маршрутам или jquery.Я поместил в другом месте формы другое поле с тем же именем класса, что и поле, в которое я поместил автозаполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...