Jquery Autocomplete Gem - передача параметров в базу данных - PullRequest
2 голосов
/ 11 ноября 2011

Я новичок в Rails и изо всех сил пытаюсь использовать гем Jquery Autocomplete.Я могу заставить автозаполнение работать нормально, но не могу передать идентификатор элемента в свою базу данных.Независимо от того, что параметры показывают имя автозаполнения, таким образом, поле идентификатора в базе данных равно 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'

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

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

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

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

Следовательно, мой вопрос на самом деле состоит в том, как заставить этот "id" передавать в хэш params вместо "label"?Я продолжаю получать "Soulard", а не "36".

1 Ответ

0 голосов
/ 09 декабря 2011

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

<%= 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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...