我是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

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

更新:
我还应该注意,firebug显示了响应,其中包括我想要的“ id”:
{“ id”:“ 36”,“ label”:“ Soulard”,“ value”:“ Soulard”}

因此,我的问题实际上就是我如何才能使该“ id”传递给params哈希,而不是“ label”?我不断获得“灵魂”的通过,而不是“ 36”。

最佳答案

我遇到了类似的情况,试图将课程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 - jQuery自动完成 gem -将参数传递到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8087755/

10-11 03:52
查看更多