Jquery Autocomplete Gem-将参数传递到数据库

Posted

技术标签:

【中文标题】Jquery Autocomplete Gem-将参数传递到数据库【英文标题】:Jquery Autocomplete Gem- Passing params into database 【发布时间】:2011-12-26 15:05:58 【问题描述】:

我是 Rails 新手,正在努力使用 Jquery Autocomplete gem。我可以让自动完成功能正常工作,但我无法将元素的 id 传递到我的数据库中。无论如何,参数显示自动完成的名称,因此数据库中的 ID 字段为 0。我在控制器中设置了如下操作:

class GroupsController < ApplicationController
 autocomplete :nhood, :name

该路线似乎也可以正常工作,因为自动完成功能正常。错误出现在表格的某个地方,我尝试了很多变化,但没有任何效果。目标是将对应于自动完成的社区名称的社区 ID 传递到“计划”表中。这是表格:

<%= 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

如果有人可以提供帮助,将不胜感激。如果需要,我很乐意提供更多信息。谢谢

更新: 我还应该注意,萤火虫会显示响应,其中包括我想要的“id”: "id":"36","label":"Soulard","value":"Soulard"

因此,我的问题实际上是如何让“id”传入参数哈希,而不是“标签”?我不断让“灵魂”通过,而不是“36”。

【问题讨论】:

【参考方案1】:

我在尝试将课程 ID 链接到课程时间表时遇到了类似的情况。对我有用的是在隐藏字段中传递 id。

<%= 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 %>

【讨论】:

以上是关于Jquery Autocomplete Gem-将参数传递到数据库的主要内容,如果未能解决你的问题,请参考以下文章

远程模式 RoR 中的 jQuery UI 自动完成

使用 jQuery .autocomplete 检索项目将不起作用,也不会引发任何错误

(jQuery Autocomplete)禁用键盘命令?

jQuery Autocomplete 无法通过 AJAX 工作

通过 rails3-jquery-autocomplete 使用多个输入字段

AutoComplete jQuery使用JSON数据