Драгоценный камень автозаполнения Jquery — передача параметров в базу данных

#jquery #ruby-on-rails #forms #autocomplete

#jquery #ruby-on-rails #формы #автозаполнение

Вопрос:

Я новичок в Rails, и я изо всех сил пытаюсь использовать драгоценный камень автозаполнения Jquery. Я могу заставить автозаполнение работать нормально, но я не могу передать идентификатор элемента в свою базу данных. Несмотря ни на что, параметры показывают автоматически заполненное имя, поэтому поле ID в базе данных равно 0. У меня есть действие, настроенное в контроллере следующим образом:

 class GroupsController < ApplicationController
 autocomplete :nhood, :name
  

Маршрут также, похоже, работает нормально, поскольку автозаполнение функционирует должным образом. Ошибка где-то в форме, и я перепробовал массу вариантов, но ничего не работает. Цель состоит в том, чтобы передать идентификатор района, который соответствует автоматически заполненному имени района, в таблицу «планы». Вот форма:

 <%= form_for(@plan, :url=> groups_createplan_path) do |f| %>
 <div class="field">
<%= f.label :nhood_id %>
<%= f.autocomplete_field :nhood_id, autocomplete_nhood_name_groups_path,
:update_elements => {:id => '#id_element'}, :size=>50 %>
 <%= f.submit "Submit" %>
 <% end %>
  

Я начал с вариаций

   :id_element => '#some_element', such as :id_element => '#nhood_id', or just
  :id_element => '#id'
  

но, похоже, ничего не работало. Я довольно запутался, и я думаю, что внимательно следил за документацией gem, поэтому я не знаю, где ошибка.

https://github.com/crowdint/rails3-jquery-autocomplete

Если кто-то может помочь, это было бы очень ценно. Я был бы рад предоставить дополнительную информацию, если это необходимо. Спасибо

Обновить: Я должен также отметить, что firebug показывает ответ, который включает в себя «id», который я хочу: {«id»: «36», «label»: «Soulard», «value»: «Soulard»}

Следовательно, мой вопрос на самом деле заключается в том, как мне передать этот «id» в хэше параметров вместо «label»? Я продолжаю передавать «soulard», а не «36».

Ответ №1:

У меня была похожая ситуация, когда я пытался связать идентификатор курса с расписанием курса. Что сработало для меня, так это передать идентификатор в скрытом поле.

 <%= f.label "Course Number" %><br />
<%= f.autocomplete_field :course_number, autocomplete_course_name_department_timetables_path, :update_elements => {:id => "#timetable_course_id"}%>
<%= f.hidden_field :course_id%>
  

Итак, что может сработать для вас, может быть

 <%= f.label :nhood_id %>
<%= f.autocomplete_field :nhood_name, autocomplete_nhood_name_groups_path, :update_elements => {:id => '#plans_nhood_id'}, :size=>50 %>
<%= f.hidden_field :nhood_id %>