JSON自动完成错误的URL在Rails

thi*_*ebo 2 url json ruby-on-rails jquery-ui-autocomplete

我在应用程序的多个位置上使用了jQuery自动完成功能,包括带有url的表单:

http://www.fonsiuris.net/fr/administration/actes/nouveau/122
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/管理/行为表单具有以下字段:

http://www.fonsiuris.net/fr/administration/actes/nouveau/122
Run Code Online (Sandbox Code Playgroud)

在routes.rb中:

<%= lieux.text_area :place, :value =>  params[:acte] ? @place["place"] : "", class:"field_places", data: {autocomplete_source: lieux_enum_path} %>
Run Code Online (Sandbox Code Playgroud)

这是我的routes.rb的第一个URL

但是,当我在文本区域中键入字母时,例如具有自动完成功能的“ Dou”,它将指向此url:

http://www.fonsiuris.net/fr/biblios/trouver?utf8=?&ch_bib[aut_titre_cherche]=Douai&commit.x=6&commit.y=2&term=Dou
Run Code Online (Sandbox Code Playgroud)

当我输入多个术语时,该术语会像这样添加到网址中:

/fr/biblios/trouver?utf8=%E2%9C%93&ch_bib%5Baut_titre_cherche%5D=Douai&commit.x=5&commit.y=11&term=Paris
Run Code Online (Sandbox Code Playgroud)

(都将杜埃岛和巴黎都添加为搜索词)

它应该指向这个URL:

http://www.fonsiuris.net/lieux/enum?term=Dou
Run Code Online (Sandbox Code Playgroud)

给出正确的结果。我在应用程序的多个位置使用了相同的代码,并且使用了相同的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/}
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的是:

  • 重新加油路线
  • 重写form.html.erb,使其包含与我的应用程序可以正常工作的其他地方完全相同的代码
  • 在各处使用相同的JavaScript
  • 重新安装jquery和jquery-ui:现在使用cdn代替gem-没有任何区别。

我不知道从哪里开始寻找解决方案。

Ver*_*ics 5

根据我从@thiebo获得的信息,我将提供一个更加清晰的答案。

<%= lieux.text_area :place, :value =>  params[:acte] ? @place["place"] : "",
     class:"field_places", data: {autocomplete_source: lieux_enum_path} %>
Run Code Online (Sandbox Code Playgroud)

该字段使用相同的字段名称出现两次。删除数据属性中没有自动完成成员的字段。